SlideShare a Scribd company logo
1 of 39
1@aymerictwit
SEO: outils et modules pour Apache
2@aymerictwit
SEO: outils et modules pour Apache
Pendant 1 heure, on va causer de performances et aussi de…
3@aymerictwit
Objectifs de l'atelier:
- Apache et ses fichiers de configuration
- Utiliser les variables d'environnement (ex: cloacking, deny IP)
- Les modules à connaître
- NSEO et Duplicate Content
- Optimiser et monitorer son serveur Web
- Varnish en front pour doper ses perfs
SEO: outils et modules pour Apache
4@aymerictwit
Apache c'est
- Un serveur HTTP puissant! mais parfois lourd…
- Des modules permettant de nombreuses fonctionnalités pouvant être utiles pour le SEO
- Combiner différents modules pour aller plus loin
 Varnish pour mieux tirer profit des outils d'Apache tout en boostant les performances de ton serveur Web
SEO: outils et modules pour Apache
5@aymerictwit
Rappel .htaccess
Pour chaque appel de fichier, Apache va vérifier la présence d’un fichier .htaccess dans tous les répertoires :http://www.monsite.com/fr/categorie/images/monimage.jpg
Si le contenu du fichier .htaccess présent dans le répertoire /var/www/monsite/ était dans le fichier de configuration global apache2conf, il ne serait chargé qu’au démarrage
du serveur
 Moins d’accès disque par le daemon httpd & serveur plus rapide pour servir les fichiers
SEO: outils et modules pour Apache
/v ar /www/monsite/
/v ar/ ww w /mo nsi te/f r/
/var/www/monsite/fr/categorie/
/var/www/monsite/fr/categorie/images/
.htaccess ?
.htaccess ?
.htaccess ?
.htaccess ?
6@aymerictwit
Gain de performances sans .htaccess:
D'autres sections existent pour les directives :
<Files "*.php"></Files>
<FilesMatch ".(jpe?g|png)$"></Files>
Pour désactiver les .htaccess: AllowOverride None
SEO: outils et modules pour Apache
7@aymerictwit
mod_setenvif(#a2enmod setenvif)
On définit des variables d'environnement avec des IF pour interagir avec d'autres modules comme mod_headers, mod_rewrite,
mod_includes, mod_log_config…
SetEnvIfNoCase User-Agent HTTrack aspirateur
(équivalent: BrowserMatchNoCase HTTrack bot)
SetEnvIf Request_URI ".jpg$" objetimage=jpg
Liste des attributs: Remote_Host, Remote_Addr, Server_Addr, Request_Method, Request_Protocol, Request_URI, Referer
SEO: outils et modules pour Apache
8@aymerictwit
mod_setenvif(#a2enmod setenvif)
Et si on cachait aux analyseurs de backlinks notre réseau de liens?
Ah! On peut les bloquer dans le robots.txt…
User-agent: AhrefsBot
Disallow: /
User-agent: MJ12bot
Disallow: /
SEO: outils et modules pour Apache
9@aymerictwit
mod_setenvif(#a2enmod setenvif)
Bloquer les traceurs de liens pour planquer son réseau
SetEnvIfNoCase User-Agent "^AhrefsBot" especedindiscret
SetEnvIfNoCase User-Agent "^MJ12bot" especedindiscret
Order Allow,Deny
Allow from All
Deny from env= especedindiscret
Autre exemple : détecter la pagination pour des actions ultérieures
SetEnvIf Request_URI ".*/page/.*" stopindex
#puis mod_headers pour envoyer du noindex, follow
SEO: outils et modules pour Apache
10@aymerictwit
mod_headers (#a2enmod headers)
Manipuler les en-têtes HTTP
Header set|unset|append|add Nomdelentete "Contenu"{ }
En-tête HTTP X-Robots-Tag pour Googlebot
#avec déclaration variable d'environnement
<Files "partenaires.html">Header Set X-Robots-Tag 'nofollow' env=CLOACK</Files>
En-tête HTTP X-Robots-Tag pour cacher son côté obscur
#avec déclaration variable d'environnement
Header set X-Robots-Tag "nosnippet,noarchive" CLOACK
SEO: outils et modules pour Apache
11@aymerictwit
mod_headers (#a2enmod headers)
Un ordre est respecté pour l'exécution de ces directives
- Serveur principal
- Vhost (hors sections)
- Sections <Directory> et fichiers .htaccess
- <Files>
- <Location>
Utile pour les en-têtes Link (canonical, prev, netxt), X-Robots-tag mais aussi pour les en-têtes de cache.
SEO: outils et modules pour Apache
12@aymerictwit
mod_rewrite (#a2enmod rewrite)
Gestion de la réécriture d'URL
Exemples d'utilisation avancés:
- Définir des variables d'environnement en fonction de plusieurs éléments
- Interagir avec d'autres modules (mod_headers, mod_proxy, etc.)
- Manipuler les URL et ce qui les composent (host, query_string)
- Gérer des migrations SEO
SEO: outils et modules pour Apache
13@aymerictwit
mod_rewrite (#a2enmod rewrite)
mod_rewrite c'est plus marrant avec
- Des regexp: ^/?([A-Z] 1,4 )/(.*)${ }
- Des variables d'environnement: % HTTP_REFERER , % QUERY_STRING , % REQUEST_URI , % HTTP_USER_AGENT , % REMOTE_ADDR , % HTTP:Accept-Language …{ } { } { } { } { } { }
- Des conditions de réécriture: RewriteCond
- Des drapeaux: [R=xxx], [F], [G], [P], [CO], [S=xxx], [T= image/jpeg].
SEO: outils et modules pour Apache
14@aymerictwit
mod_rewrite (#a2enmod rewrite)
- Dans une RewriteRule, on récupère les ensembles avec des $
RewriteRule ^/([a-zA-Z-]+)/([a-zA-Z-]+)/([a-zA-Z-]+)$ display.php?pays=$1&dpt=$2&ville=$3
- Dans une RewriteCond, on récupère les ensembles avec %
RewriteCond % QUERY_STRING ^page={ } (.*)$
RewriteRule ^(.*)$ /$1/page/%1/ [R=301,L]
SEO: outils et modules pour Apache
15@aymerictwit
mod_rewrite (#a2enmod rewrite)
C’est aussi très pratique pour faire du cloacking…
SEO: outils et modules pour Apache
16@aymerictwit
mod_rewrite (#a2enmod rewrite)
Cloacking du parano avec Apache
RewriteCond % REMOTE_HOST ^crawl-66-249-[0-9] 1,3 -[0-9] 1,3 .googlebot.com${ } { } { }
RewriteCond % REMOTE_ADDR ^66.249.[0-9] 1,3 .[0-9] 1,3 ${ } { } { }
RewriteCond % HTTP:Accept-Language ^${ }
RewriteCond % HTTP_REFERER ^${ }
RewriteCond % HTTP_USER_AGENT Googlebot{ }
RewriteRule ^home.html$ /homeggbot.html [L]
RewriteRule ^home.html$ /homestandard.html [L]
Pour pouvoir résoudre les IP de REMOTE_HOST: HostnameLookups on
SEO: outils et modules pour Apache
17@aymerictwit
mod_rewrite (#a2enmod rewrite)
Avant de passer en ligne et de tout casser, vérifie ton cloacking:
SEO: outils et modules pour Apache
18@aymerictwit
mod_rewrite (#a2enmod rewrite)
Rappel: pour un cloacking Googlebot sur IP
SEO: outils et modules pour Apache
19@aymerictwit
mod_rewrite (#a2enmod rewrite)
Réutiliser des détections grâce aux variables d'environnement
RewriteCond % REMOTE_HOST ^crawl-66-249-[0-9] 1,3 -[0-9] 1,3 .googlebot.com${ } { } { }
RewriteCond % HTTP:Accept-Language ^${ }
RewriteCond % HTTP_REFERER ^${ }
RewriteCond % HTTP_USER_AGENT Googlebot{ }
RewriteRule . – [E=CLOACK:true]
#on réécrit en fonction de la valeur de la variable CLOACK
RewriteCond % CLOACK !^true${ }
RewriteRule ^/?robots.txt /robotspourindiscrets.txt [L]
SEO: outils et modules pour Apache
20@aymerictwit
mod_rewrite (#a2enmod rewrite)
Faire sauter toutes les variables inconnues pour se protéger du DC
RewriteCond % QUERY_STRING !^${ }
RewriteCond % QUERY_STRING !(utm_source|utm_medium|utm_campaign){ }
RewriteRule ^(.*)$ /$1? [R=301,L]
Hotlinking d'images
RewriteCond % HTTP_REFERER !^${ }
RewriteCond % HTTP_REFERER !^http://www.urldemonsite.com/$ [NC]{ }
RewriteRule ^.*.(gif|png|jpe?g)$ /hotlinking.php?pict=% REQUEST_URI [L,NC]{ }
SEO: outils et modules pour Apache
21@aymerictwit
mod_rewrite (#a2enmod rewrite)
Migration SEO et performances
RewriteBase /forum/
RewriteCond % REQUEST_URI !^/forum/.*${ }
RewriteRule . – [S=698]
RewriteRule ^viewtopic.php?id=279 /forum/bons-reductions-cdiscount.html [R=301,L]
RewriteRule ^viewtopic.php?id=134 /forum/comment-devenir-riche.html [R=301,L]
……. Si l'URL ne contient pas /forum/ (forum qui a migré), on saute les 698 règles qui suivent (1 règle = 1 RewriteRule)
Ou rewriteMap pour y voir plus clair
RewriteMap : RewriteRule avec un fichier de correspondance (préférence pour les .dbm)
SEO: outils et modules pour Apache
22@aymerictwit
mod_ext_filter (#a2enmod ext_filter)
Envoyer la réponse d'Apache à un programme externe
Exemples d'utilisation:
- Utiliser des commandes tels que sed, awk pour faire du search-and-replace avancé (ex: copyright en footer sur des pages
statiques, nofollow)
- Modification d'images: watermark, cropping, filters, effects…
- Ton imagination 
SEO: outils et modules pour Apache
23@aymerictwit
mod_ext_filter (#a2enmod ext_filter)
Ranker sur Google Images avec les images d'un autre site:

Flip horizontal
saturation

SEO: outils et modules pour Apache
24@aymerictwit
mod_ext_filter (#a2enmod ext_filter)
Watermark images + modification de footprint:
<IfModule mod_ext_filter.c>
ExtFilterDefine watermark mode=output intype=image/jpeg cmd="/usr/bin/composite -gravity SouthEast /var/www/labs/images/wm.png - -"
</IfModule>
<FilesMatch ".jpg$">
SetOutputFilter watermark
</FilesMatch>
Demo: http://labs.yapasdequoi.com/images/
SEO: outils et modules pour Apache
25@aymerictwit
mod_substitute (#a2enmod substitute)
Effectuer des rechercher/remplacer dans le corps des réponses
Exemples d'utilisation:
- Modifier les styles (font, color, etc.) sur l'ensemble d'un site sans modifier toutes les feuilles de style
- Nettoyer des thèmes Wordpress malveillant ou supprimer un hack en attendant de trouver une solution plus clean (origine
du code généré)
- Cacher ses liens d'affiliation
- Cleaner du contenu UGC, filtrer des mots
SEO: outils et modules pour Apache
26@aymerictwit
mod_substitute (#a2enmod substitute)
AddOutputFilterByType SUBSTITUTE text/html
Remplacer un mot par un autre
Substitute "s/SEO/référencement naturel/i"
Ajouter l'appel d'un fichier JS
Substitute "s|</head>|<script src="http://www.monsite.com/js/jquery.js"></head>|ni"
Changement d'un répertoire image
Substitute "s| src="http://www.yapasdequoi.com/wp-content/uploads/([^"]*)"| src="/pict/$1"|i"
i = insensible à la casse, n = chaîne fixe, pas de regexp
SEO: outils et modules pour Apache
27@aymerictwit
Reverse Proxy, ça te parle?
Invisible pour l'internaute, le ReverseProxy va récupérer du contenu sur un backend, pour éventuellement le mettre
en cache
 1 requête pour de multiples requêtes utilisateur
SEO: outils et modules pour Apache
28@aymerictwit
mod_proxy (#a2enmod proxy,proxy_http,proxy_html)
Mandataire inversé : <client > <reverseproxy> <sitedistant>, transparent pour l'utilisateur
En détournant l'utilisation d'un reverse proxy, nous allons pouvoir:
- Faire du NSEO Duplicate (reverse proxy cloacké)
- Dupliquer un site à la volée (et en modifier certains éléments)
SEO: outils et modules pour Apache
29@aymerictwit
mod_proxy (#a2enmod proxy,proxy_http,proxy_html)
Duplicate NSEO sur une homepage (attention au nombre de liens)
ProxyPreserveHost Off
ProxyRequests off
RequestHeader unset Accept-Encoding env=CLOACK
Header Set X-Robots-Tag "noarchive,nosnippet" env=CLOACK
RewriteEngine On
RewriteCond % ENV:CLOACK true{ }
RewriteCond % REQUEST_URI ^/${ }
RewriteRule . http://www.mattcutts.com/ [P,L]
ProxyPassReverse / http://www.mattcutts.com/
[P]= proxy (traitement de la requête)
SEO: outils et modules pour Apache
30@aymerictwit
mod_proxy (#a2enmod proxy,proxy_http,proxy_html)
Duplicate NSEO sur une homepage… et dans le cas inverse
RewriteRule ^index.php$ - [L]
RewriteCond % ENV:CLOACK !true{ }
RewriteCond % REQUEST_FILENAME !-f{ }
RewriteCond % REQUEST_FILENAME !-d{ }
RewriteRule . /index.php [L]
 Reverse proxy applicable à des pages spécifiques ou à l'ensemble d'un site
Spécial dédicace Tiger http://www.seoblackout.com/2014/02/01/negative-seo-duplicate-content-mattcutts/
[
SEO: outils et modules pour Apache
31@aymerictwit
mod_proxy (#a2enmod proxy,proxy_http,proxy_html)
S'attribuer la propriété d'un site de façon temporaire pour
- S'inscrire dans les annuaires alors que le site est "en construction"
- Poser des liens avec un site pourri/thématique touchy & co: (referer inside)
- …ton imagination 
SEO: outils et modules pour Apache
32@aymerictwit
mod_proxy (#a2enmod proxy,proxy_http,proxy_html)
Copier un site à la volée en modifiant quelques détails:
Header set X-Robots-Tag "noindex,nofollow"
ServerName usurpateur.yapasdequoi.com
ProxyPreserveHost Off
ProxyRequests Off
ProxyPass / http://www.laurentbourrelly.com/
ProxyPassReverse / http://www.laurentbourrelly.com/
#RequestHeader unset Accept-Encoding
SetOutputFilter INFLATE;DEFLATE
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|Laurent Bourrelly|Kevin Richard|i"
Substitute "s|SEO |Blackhat SEO|i"
Substitute "s|<img src="/images/laurent-bourrelly.png.*">|<img src=http://www.chambe-carnet.com/wp-content/uploads/2012/01/photo-chambe-carnet-kevin-richard-251x300.jpg"
width="150" height="150">|i"
ProxyHTMLEnable On
ProxyHTMLURLMap http://www.laurentbourrelly.com/ /
SEO: outils et modules pour Apache
Ex: http://usurpateur.yapasdequoi.com
33@aymerictwit
Les Logs, en cas de soucis avec ta config
- Log d'erreurs
#nano /var/log/apache2/error.log
- On crée des logs spécifiques avec les variables d'environnements
SetEnvIf User-Agent "Googlebot/2.1" googlebot_log
CustomLog /var/log/apache2/google.log combined env=googlebot_log
- On stock tous les referers sauf le local
SetEnvIf Referer www.yapasdequoi.com reflocal
CustomLog /var/log/apache2/referer.log combined env=!reflocal
- On envoie les lignes de logs dans un programme
CustomLog "|/var/www/scripts/analyse.php" formatspecifique env=watussi
SEO: outils et modules pour Apache
34@aymerictwit
Et les outils Apache pratiques
Infos sur la configuration du serveur que tu ne connais pas (vhosts)
#apache2ctl –S
- Tester les performances du serveur avec Apache Benchmark
#ab -n 1000 -c 10 http://www.google.fr/
(1000 requêtes avec10 requêtes simultanées… Tiens, on peut faire du POST avec aussi )
- Résoudre des IP
logresolve stats.txt -c /var/log/apache2/googlebot.log hotesgoogle.txt
SEO: outils et modules pour Apache
35@aymerictwit
Tu gères sur Apache maintenant? Alors on passe aux choses sérieuses…
SEO: outils et modules pour Apache
36@aymerictwit
Varnish = "The" reverse proxy
il ne sait faire que ça, mais il le fait très bien
https://www.youtube.com/watch?v=x7t2Sp174eI
Varnish
37@aymerictwit
Varnish + Apache
38@aymerictwit
Apache doc: http://httpd.apache.org/docs/2.2/en/
et différents sites parcourus au fil du temps…
Quelques billets sur Apache & Varnish: http://www.yapasdequoi.com
Liens utiles et sources:
39@aymerictwit
Merci d'avoir choisi cet atelier!
Contact : http://twitter.com/aymerictwit
Google+: https://plus.google.com/+AymericBouillat
Linkedin: http://fr.linkedin.com/in/aymericbouillat
Keep in touch 

More Related Content

Viewers also liked

Presentation Details Techno5 2011.Fr
Presentation Details Techno5 2011.FrPresentation Details Techno5 2011.Fr
Presentation Details Techno5 2011.FrRachele_pouliot
 
Mesurer impact tic igretec 13 10-2011
Mesurer impact tic igretec 13 10-2011Mesurer impact tic igretec 13 10-2011
Mesurer impact tic igretec 13 10-2011DorotheeJ
 
Portfolio 2013 - Corinne Maix Rédaction
Portfolio 2013 - Corinne Maix RédactionPortfolio 2013 - Corinne Maix Rédaction
Portfolio 2013 - Corinne Maix RédactionStephane Villeroy
 
Pollo Porche
Pollo PorchePollo Porche
Pollo Porcheyrithinnd
 
CurríCulum Snv Ni Jorge Alberto Cerda 2009
CurríCulum Snv  Ni   Jorge Alberto Cerda   2009CurríCulum Snv  Ni   Jorge Alberto Cerda   2009
CurríCulum Snv Ni Jorge Alberto Cerda 2009cibcoke
 
1.1 introduction au jat1
1.1 introduction au jat11.1 introduction au jat1
1.1 introduction au jat1GTMMTG
 
Laorganizacinenredesderedesyorganizaciones
Laorganizacinenredesderedesyorganizaciones Laorganizacinenredesderedesyorganizaciones
Laorganizacinenredesderedesyorganizaciones Adalberto
 
¿Cómo poner en marcha de forma efectiva una campaña de crowdfunding?
¿Cómo poner en marcha de forma efectiva una campaña de crowdfunding?¿Cómo poner en marcha de forma efectiva una campaña de crowdfunding?
¿Cómo poner en marcha de forma efectiva una campaña de crowdfunding?Miguel Ángel Trujillo
 
Formación basada en competencias
Formación basada en competencias Formación basada en competencias
Formación basada en competencias Adalberto
 
Diversidad cultural y educacion
Diversidad cultural y educacionDiversidad cultural y educacion
Diversidad cultural y educacionAdalberto
 
PresentacióN De MonografíA
PresentacióN De MonografíAPresentacióN De MonografíA
PresentacióN De MonografíAcoricienta
 
Palmarès des quotidiens SND 2012
Palmarès des quotidiens SND 2012Palmarès des quotidiens SND 2012
Palmarès des quotidiens SND 2012Luc Fayard
 
Distribuciones Arcangel
Distribuciones ArcangelDistribuciones Arcangel
Distribuciones Arcangelguest498152
 
Ley de servicio médicoa para el magisterio
Ley de servicio médicoa para el magisterio Ley de servicio médicoa para el magisterio
Ley de servicio médicoa para el magisterio Adalberto
 
Perspectives n°9 - janv-fev2012
Perspectives   n°9 - janv-fev2012Perspectives   n°9 - janv-fev2012
Perspectives n°9 - janv-fev2012Yoann DUCUING
 
Julio actividad integradora. 3º grado
Julio actividad integradora. 3º gradoJulio actividad integradora. 3º grado
Julio actividad integradora. 3º gradoAdalberto
 

Viewers also liked (18)

Presentation Details Techno5 2011.Fr
Presentation Details Techno5 2011.FrPresentation Details Techno5 2011.Fr
Presentation Details Techno5 2011.Fr
 
Mesurer impact tic igretec 13 10-2011
Mesurer impact tic igretec 13 10-2011Mesurer impact tic igretec 13 10-2011
Mesurer impact tic igretec 13 10-2011
 
Portfolio 2013 - Corinne Maix Rédaction
Portfolio 2013 - Corinne Maix RédactionPortfolio 2013 - Corinne Maix Rédaction
Portfolio 2013 - Corinne Maix Rédaction
 
Pollo Porche
Pollo PorchePollo Porche
Pollo Porche
 
CurríCulum Snv Ni Jorge Alberto Cerda 2009
CurríCulum Snv  Ni   Jorge Alberto Cerda   2009CurríCulum Snv  Ni   Jorge Alberto Cerda   2009
CurríCulum Snv Ni Jorge Alberto Cerda 2009
 
Lessencede noel
Lessencede noelLessencede noel
Lessencede noel
 
1.1 introduction au jat1
1.1 introduction au jat11.1 introduction au jat1
1.1 introduction au jat1
 
Laorganizacinenredesderedesyorganizaciones
Laorganizacinenredesderedesyorganizaciones Laorganizacinenredesderedesyorganizaciones
Laorganizacinenredesderedesyorganizaciones
 
¿Cómo poner en marcha de forma efectiva una campaña de crowdfunding?
¿Cómo poner en marcha de forma efectiva una campaña de crowdfunding?¿Cómo poner en marcha de forma efectiva una campaña de crowdfunding?
¿Cómo poner en marcha de forma efectiva una campaña de crowdfunding?
 
Power Point10
Power Point10Power Point10
Power Point10
 
Formación basada en competencias
Formación basada en competencias Formación basada en competencias
Formación basada en competencias
 
Diversidad cultural y educacion
Diversidad cultural y educacionDiversidad cultural y educacion
Diversidad cultural y educacion
 
PresentacióN De MonografíA
PresentacióN De MonografíAPresentacióN De MonografíA
PresentacióN De MonografíA
 
Palmarès des quotidiens SND 2012
Palmarès des quotidiens SND 2012Palmarès des quotidiens SND 2012
Palmarès des quotidiens SND 2012
 
Distribuciones Arcangel
Distribuciones ArcangelDistribuciones Arcangel
Distribuciones Arcangel
 
Ley de servicio médicoa para el magisterio
Ley de servicio médicoa para el magisterio Ley de servicio médicoa para el magisterio
Ley de servicio médicoa para el magisterio
 
Perspectives n°9 - janv-fev2012
Perspectives   n°9 - janv-fev2012Perspectives   n°9 - janv-fev2012
Perspectives n°9 - janv-fev2012
 
Julio actividad integradora. 3º grado
Julio actividad integradora. 3º gradoJulio actividad integradora. 3º grado
Julio actividad integradora. 3º grado
 

More from Aymeric Bouillat

SEO Lanta : gagnez l'aventure des SERP
SEO Lanta : gagnez l'aventure des SERPSEO Lanta : gagnez l'aventure des SERP
SEO Lanta : gagnez l'aventure des SERPAymeric Bouillat
 
Dans la jungle des sites mobiles - comment les rendre (vraiment) SEO-friendly ?
Dans la jungle des sites mobiles  - comment les rendre (vraiment) SEO-friendly ?Dans la jungle des sites mobiles  - comment les rendre (vraiment) SEO-friendly ?
Dans la jungle des sites mobiles - comment les rendre (vraiment) SEO-friendly ?Aymeric Bouillat
 
Screaming frog - l'outil ne fait pas l'artisan
Screaming frog - l'outil ne fait pas l'artisanScreaming frog - l'outil ne fait pas l'artisan
Screaming frog - l'outil ne fait pas l'artisanAymeric Bouillat
 
Mystères et associés dans les résultats de Google
Mystères et associés dans les résultats de GoogleMystères et associés dans les résultats de Google
Mystères et associés dans les résultats de GoogleAymeric Bouillat
 
La casa de SEO : les questions à se poser pour le casse SEO parfait
La casa de SEO : les questions à se poser pour le casse SEO parfaitLa casa de SEO : les questions à se poser pour le casse SEO parfait
La casa de SEO : les questions à se poser pour le casse SEO parfaitAymeric Bouillat
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secretsAymeric Bouillat
 
Migration seo - astuces techniques pour améliorer votre trafic
Migration seo - astuces techniques pour améliorer votre traficMigration seo - astuces techniques pour améliorer votre trafic
Migration seo - astuces techniques pour améliorer votre traficAymeric Bouillat
 
Seo mobile - bonnes pratiques
Seo mobile -  bonnes pratiquesSeo mobile -  bonnes pratiques
Seo mobile - bonnes pratiquesAymeric Bouillat
 
Site mobile et SEO - les erreurs à ne pas commettre
Site mobile et SEO - les erreurs à ne pas commettreSite mobile et SEO - les erreurs à ne pas commettre
Site mobile et SEO - les erreurs à ne pas commettreAymeric Bouillat
 

More from Aymeric Bouillat (10)

SEO Lanta : gagnez l'aventure des SERP
SEO Lanta : gagnez l'aventure des SERPSEO Lanta : gagnez l'aventure des SERP
SEO Lanta : gagnez l'aventure des SERP
 
Dans la jungle des sites mobiles - comment les rendre (vraiment) SEO-friendly ?
Dans la jungle des sites mobiles  - comment les rendre (vraiment) SEO-friendly ?Dans la jungle des sites mobiles  - comment les rendre (vraiment) SEO-friendly ?
Dans la jungle des sites mobiles - comment les rendre (vraiment) SEO-friendly ?
 
Screaming frog - l'outil ne fait pas l'artisan
Screaming frog - l'outil ne fait pas l'artisanScreaming frog - l'outil ne fait pas l'artisan
Screaming frog - l'outil ne fait pas l'artisan
 
Mystères et associés dans les résultats de Google
Mystères et associés dans les résultats de GoogleMystères et associés dans les résultats de Google
Mystères et associés dans les résultats de Google
 
La casa de SEO : les questions à se poser pour le casse SEO parfait
La casa de SEO : les questions à se poser pour le casse SEO parfaitLa casa de SEO : les questions à se poser pour le casse SEO parfait
La casa de SEO : les questions à se poser pour le casse SEO parfait
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
Migration seo - astuces techniques pour améliorer votre trafic
Migration seo - astuces techniques pour améliorer votre traficMigration seo - astuces techniques pour améliorer votre trafic
Migration seo - astuces techniques pour améliorer votre trafic
 
Netlinking en 2015
Netlinking en 2015Netlinking en 2015
Netlinking en 2015
 
Seo mobile - bonnes pratiques
Seo mobile -  bonnes pratiquesSeo mobile -  bonnes pratiques
Seo mobile - bonnes pratiques
 
Site mobile et SEO - les erreurs à ne pas commettre
Site mobile et SEO - les erreurs à ne pas commettreSite mobile et SEO - les erreurs à ne pas commettre
Site mobile et SEO - les erreurs à ne pas commettre
 

Outils et modules pour le serveur Apache

  • 1. 1@aymerictwit SEO: outils et modules pour Apache
  • 2. 2@aymerictwit SEO: outils et modules pour Apache Pendant 1 heure, on va causer de performances et aussi de…
  • 3. 3@aymerictwit Objectifs de l'atelier: - Apache et ses fichiers de configuration - Utiliser les variables d'environnement (ex: cloacking, deny IP) - Les modules à connaître - NSEO et Duplicate Content - Optimiser et monitorer son serveur Web - Varnish en front pour doper ses perfs SEO: outils et modules pour Apache
  • 4. 4@aymerictwit Apache c'est - Un serveur HTTP puissant! mais parfois lourd… - Des modules permettant de nombreuses fonctionnalités pouvant être utiles pour le SEO - Combiner différents modules pour aller plus loin  Varnish pour mieux tirer profit des outils d'Apache tout en boostant les performances de ton serveur Web SEO: outils et modules pour Apache
  • 5. 5@aymerictwit Rappel .htaccess Pour chaque appel de fichier, Apache va vérifier la présence d’un fichier .htaccess dans tous les répertoires :http://www.monsite.com/fr/categorie/images/monimage.jpg Si le contenu du fichier .htaccess présent dans le répertoire /var/www/monsite/ était dans le fichier de configuration global apache2conf, il ne serait chargé qu’au démarrage du serveur  Moins d’accès disque par le daemon httpd & serveur plus rapide pour servir les fichiers SEO: outils et modules pour Apache /v ar /www/monsite/ /v ar/ ww w /mo nsi te/f r/ /var/www/monsite/fr/categorie/ /var/www/monsite/fr/categorie/images/ .htaccess ? .htaccess ? .htaccess ? .htaccess ?
  • 6. 6@aymerictwit Gain de performances sans .htaccess: D'autres sections existent pour les directives : <Files "*.php"></Files> <FilesMatch ".(jpe?g|png)$"></Files> Pour désactiver les .htaccess: AllowOverride None SEO: outils et modules pour Apache
  • 7. 7@aymerictwit mod_setenvif(#a2enmod setenvif) On définit des variables d'environnement avec des IF pour interagir avec d'autres modules comme mod_headers, mod_rewrite, mod_includes, mod_log_config… SetEnvIfNoCase User-Agent HTTrack aspirateur (équivalent: BrowserMatchNoCase HTTrack bot) SetEnvIf Request_URI ".jpg$" objetimage=jpg Liste des attributs: Remote_Host, Remote_Addr, Server_Addr, Request_Method, Request_Protocol, Request_URI, Referer SEO: outils et modules pour Apache
  • 8. 8@aymerictwit mod_setenvif(#a2enmod setenvif) Et si on cachait aux analyseurs de backlinks notre réseau de liens? Ah! On peut les bloquer dans le robots.txt… User-agent: AhrefsBot Disallow: / User-agent: MJ12bot Disallow: / SEO: outils et modules pour Apache
  • 9. 9@aymerictwit mod_setenvif(#a2enmod setenvif) Bloquer les traceurs de liens pour planquer son réseau SetEnvIfNoCase User-Agent "^AhrefsBot" especedindiscret SetEnvIfNoCase User-Agent "^MJ12bot" especedindiscret Order Allow,Deny Allow from All Deny from env= especedindiscret Autre exemple : détecter la pagination pour des actions ultérieures SetEnvIf Request_URI ".*/page/.*" stopindex #puis mod_headers pour envoyer du noindex, follow SEO: outils et modules pour Apache
  • 10. 10@aymerictwit mod_headers (#a2enmod headers) Manipuler les en-têtes HTTP Header set|unset|append|add Nomdelentete "Contenu"{ } En-tête HTTP X-Robots-Tag pour Googlebot #avec déclaration variable d'environnement <Files "partenaires.html">Header Set X-Robots-Tag 'nofollow' env=CLOACK</Files> En-tête HTTP X-Robots-Tag pour cacher son côté obscur #avec déclaration variable d'environnement Header set X-Robots-Tag "nosnippet,noarchive" CLOACK SEO: outils et modules pour Apache
  • 11. 11@aymerictwit mod_headers (#a2enmod headers) Un ordre est respecté pour l'exécution de ces directives - Serveur principal - Vhost (hors sections) - Sections <Directory> et fichiers .htaccess - <Files> - <Location> Utile pour les en-têtes Link (canonical, prev, netxt), X-Robots-tag mais aussi pour les en-têtes de cache. SEO: outils et modules pour Apache
  • 12. 12@aymerictwit mod_rewrite (#a2enmod rewrite) Gestion de la réécriture d'URL Exemples d'utilisation avancés: - Définir des variables d'environnement en fonction de plusieurs éléments - Interagir avec d'autres modules (mod_headers, mod_proxy, etc.) - Manipuler les URL et ce qui les composent (host, query_string) - Gérer des migrations SEO SEO: outils et modules pour Apache
  • 13. 13@aymerictwit mod_rewrite (#a2enmod rewrite) mod_rewrite c'est plus marrant avec - Des regexp: ^/?([A-Z] 1,4 )/(.*)${ } - Des variables d'environnement: % HTTP_REFERER , % QUERY_STRING , % REQUEST_URI , % HTTP_USER_AGENT , % REMOTE_ADDR , % HTTP:Accept-Language …{ } { } { } { } { } { } - Des conditions de réécriture: RewriteCond - Des drapeaux: [R=xxx], [F], [G], [P], [CO], [S=xxx], [T= image/jpeg]. SEO: outils et modules pour Apache
  • 14. 14@aymerictwit mod_rewrite (#a2enmod rewrite) - Dans une RewriteRule, on récupère les ensembles avec des $ RewriteRule ^/([a-zA-Z-]+)/([a-zA-Z-]+)/([a-zA-Z-]+)$ display.php?pays=$1&dpt=$2&ville=$3 - Dans une RewriteCond, on récupère les ensembles avec % RewriteCond % QUERY_STRING ^page={ } (.*)$ RewriteRule ^(.*)$ /$1/page/%1/ [R=301,L] SEO: outils et modules pour Apache
  • 15. 15@aymerictwit mod_rewrite (#a2enmod rewrite) C’est aussi très pratique pour faire du cloacking… SEO: outils et modules pour Apache
  • 16. 16@aymerictwit mod_rewrite (#a2enmod rewrite) Cloacking du parano avec Apache RewriteCond % REMOTE_HOST ^crawl-66-249-[0-9] 1,3 -[0-9] 1,3 .googlebot.com${ } { } { } RewriteCond % REMOTE_ADDR ^66.249.[0-9] 1,3 .[0-9] 1,3 ${ } { } { } RewriteCond % HTTP:Accept-Language ^${ } RewriteCond % HTTP_REFERER ^${ } RewriteCond % HTTP_USER_AGENT Googlebot{ } RewriteRule ^home.html$ /homeggbot.html [L] RewriteRule ^home.html$ /homestandard.html [L] Pour pouvoir résoudre les IP de REMOTE_HOST: HostnameLookups on SEO: outils et modules pour Apache
  • 17. 17@aymerictwit mod_rewrite (#a2enmod rewrite) Avant de passer en ligne et de tout casser, vérifie ton cloacking: SEO: outils et modules pour Apache
  • 18. 18@aymerictwit mod_rewrite (#a2enmod rewrite) Rappel: pour un cloacking Googlebot sur IP SEO: outils et modules pour Apache
  • 19. 19@aymerictwit mod_rewrite (#a2enmod rewrite) Réutiliser des détections grâce aux variables d'environnement RewriteCond % REMOTE_HOST ^crawl-66-249-[0-9] 1,3 -[0-9] 1,3 .googlebot.com${ } { } { } RewriteCond % HTTP:Accept-Language ^${ } RewriteCond % HTTP_REFERER ^${ } RewriteCond % HTTP_USER_AGENT Googlebot{ } RewriteRule . – [E=CLOACK:true] #on réécrit en fonction de la valeur de la variable CLOACK RewriteCond % CLOACK !^true${ } RewriteRule ^/?robots.txt /robotspourindiscrets.txt [L] SEO: outils et modules pour Apache
  • 20. 20@aymerictwit mod_rewrite (#a2enmod rewrite) Faire sauter toutes les variables inconnues pour se protéger du DC RewriteCond % QUERY_STRING !^${ } RewriteCond % QUERY_STRING !(utm_source|utm_medium|utm_campaign){ } RewriteRule ^(.*)$ /$1? [R=301,L] Hotlinking d'images RewriteCond % HTTP_REFERER !^${ } RewriteCond % HTTP_REFERER !^http://www.urldemonsite.com/$ [NC]{ } RewriteRule ^.*.(gif|png|jpe?g)$ /hotlinking.php?pict=% REQUEST_URI [L,NC]{ } SEO: outils et modules pour Apache
  • 21. 21@aymerictwit mod_rewrite (#a2enmod rewrite) Migration SEO et performances RewriteBase /forum/ RewriteCond % REQUEST_URI !^/forum/.*${ } RewriteRule . – [S=698] RewriteRule ^viewtopic.php?id=279 /forum/bons-reductions-cdiscount.html [R=301,L] RewriteRule ^viewtopic.php?id=134 /forum/comment-devenir-riche.html [R=301,L] ……. Si l'URL ne contient pas /forum/ (forum qui a migré), on saute les 698 règles qui suivent (1 règle = 1 RewriteRule) Ou rewriteMap pour y voir plus clair RewriteMap : RewriteRule avec un fichier de correspondance (préférence pour les .dbm) SEO: outils et modules pour Apache
  • 22. 22@aymerictwit mod_ext_filter (#a2enmod ext_filter) Envoyer la réponse d'Apache à un programme externe Exemples d'utilisation: - Utiliser des commandes tels que sed, awk pour faire du search-and-replace avancé (ex: copyright en footer sur des pages statiques, nofollow) - Modification d'images: watermark, cropping, filters, effects… - Ton imagination  SEO: outils et modules pour Apache
  • 23. 23@aymerictwit mod_ext_filter (#a2enmod ext_filter) Ranker sur Google Images avec les images d'un autre site:  Flip horizontal saturation  SEO: outils et modules pour Apache
  • 24. 24@aymerictwit mod_ext_filter (#a2enmod ext_filter) Watermark images + modification de footprint: <IfModule mod_ext_filter.c> ExtFilterDefine watermark mode=output intype=image/jpeg cmd="/usr/bin/composite -gravity SouthEast /var/www/labs/images/wm.png - -" </IfModule> <FilesMatch ".jpg$"> SetOutputFilter watermark </FilesMatch> Demo: http://labs.yapasdequoi.com/images/ SEO: outils et modules pour Apache
  • 25. 25@aymerictwit mod_substitute (#a2enmod substitute) Effectuer des rechercher/remplacer dans le corps des réponses Exemples d'utilisation: - Modifier les styles (font, color, etc.) sur l'ensemble d'un site sans modifier toutes les feuilles de style - Nettoyer des thèmes Wordpress malveillant ou supprimer un hack en attendant de trouver une solution plus clean (origine du code généré) - Cacher ses liens d'affiliation - Cleaner du contenu UGC, filtrer des mots SEO: outils et modules pour Apache
  • 26. 26@aymerictwit mod_substitute (#a2enmod substitute) AddOutputFilterByType SUBSTITUTE text/html Remplacer un mot par un autre Substitute "s/SEO/référencement naturel/i" Ajouter l'appel d'un fichier JS Substitute "s|</head>|<script src="http://www.monsite.com/js/jquery.js"></head>|ni" Changement d'un répertoire image Substitute "s| src="http://www.yapasdequoi.com/wp-content/uploads/([^"]*)"| src="/pict/$1"|i" i = insensible à la casse, n = chaîne fixe, pas de regexp SEO: outils et modules pour Apache
  • 27. 27@aymerictwit Reverse Proxy, ça te parle? Invisible pour l'internaute, le ReverseProxy va récupérer du contenu sur un backend, pour éventuellement le mettre en cache  1 requête pour de multiples requêtes utilisateur SEO: outils et modules pour Apache
  • 28. 28@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) Mandataire inversé : <client > <reverseproxy> <sitedistant>, transparent pour l'utilisateur En détournant l'utilisation d'un reverse proxy, nous allons pouvoir: - Faire du NSEO Duplicate (reverse proxy cloacké) - Dupliquer un site à la volée (et en modifier certains éléments) SEO: outils et modules pour Apache
  • 29. 29@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) Duplicate NSEO sur une homepage (attention au nombre de liens) ProxyPreserveHost Off ProxyRequests off RequestHeader unset Accept-Encoding env=CLOACK Header Set X-Robots-Tag "noarchive,nosnippet" env=CLOACK RewriteEngine On RewriteCond % ENV:CLOACK true{ } RewriteCond % REQUEST_URI ^/${ } RewriteRule . http://www.mattcutts.com/ [P,L] ProxyPassReverse / http://www.mattcutts.com/ [P]= proxy (traitement de la requête) SEO: outils et modules pour Apache
  • 30. 30@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) Duplicate NSEO sur une homepage… et dans le cas inverse RewriteRule ^index.php$ - [L] RewriteCond % ENV:CLOACK !true{ } RewriteCond % REQUEST_FILENAME !-f{ } RewriteCond % REQUEST_FILENAME !-d{ } RewriteRule . /index.php [L]  Reverse proxy applicable à des pages spécifiques ou à l'ensemble d'un site Spécial dédicace Tiger http://www.seoblackout.com/2014/02/01/negative-seo-duplicate-content-mattcutts/ [ SEO: outils et modules pour Apache
  • 31. 31@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) S'attribuer la propriété d'un site de façon temporaire pour - S'inscrire dans les annuaires alors que le site est "en construction" - Poser des liens avec un site pourri/thématique touchy & co: (referer inside) - …ton imagination  SEO: outils et modules pour Apache
  • 32. 32@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) Copier un site à la volée en modifiant quelques détails: Header set X-Robots-Tag "noindex,nofollow" ServerName usurpateur.yapasdequoi.com ProxyPreserveHost Off ProxyRequests Off ProxyPass / http://www.laurentbourrelly.com/ ProxyPassReverse / http://www.laurentbourrelly.com/ #RequestHeader unset Accept-Encoding SetOutputFilter INFLATE;DEFLATE AddOutputFilterByType SUBSTITUTE text/html Substitute "s|Laurent Bourrelly|Kevin Richard|i" Substitute "s|SEO |Blackhat SEO|i" Substitute "s|<img src="/images/laurent-bourrelly.png.*">|<img src=http://www.chambe-carnet.com/wp-content/uploads/2012/01/photo-chambe-carnet-kevin-richard-251x300.jpg" width="150" height="150">|i" ProxyHTMLEnable On ProxyHTMLURLMap http://www.laurentbourrelly.com/ / SEO: outils et modules pour Apache Ex: http://usurpateur.yapasdequoi.com
  • 33. 33@aymerictwit Les Logs, en cas de soucis avec ta config - Log d'erreurs #nano /var/log/apache2/error.log - On crée des logs spécifiques avec les variables d'environnements SetEnvIf User-Agent "Googlebot/2.1" googlebot_log CustomLog /var/log/apache2/google.log combined env=googlebot_log - On stock tous les referers sauf le local SetEnvIf Referer www.yapasdequoi.com reflocal CustomLog /var/log/apache2/referer.log combined env=!reflocal - On envoie les lignes de logs dans un programme CustomLog "|/var/www/scripts/analyse.php" formatspecifique env=watussi SEO: outils et modules pour Apache
  • 34. 34@aymerictwit Et les outils Apache pratiques Infos sur la configuration du serveur que tu ne connais pas (vhosts) #apache2ctl –S - Tester les performances du serveur avec Apache Benchmark #ab -n 1000 -c 10 http://www.google.fr/ (1000 requêtes avec10 requêtes simultanées… Tiens, on peut faire du POST avec aussi ) - Résoudre des IP logresolve stats.txt -c /var/log/apache2/googlebot.log hotesgoogle.txt SEO: outils et modules pour Apache
  • 35. 35@aymerictwit Tu gères sur Apache maintenant? Alors on passe aux choses sérieuses… SEO: outils et modules pour Apache
  • 36. 36@aymerictwit Varnish = "The" reverse proxy il ne sait faire que ça, mais il le fait très bien https://www.youtube.com/watch?v=x7t2Sp174eI Varnish
  • 38. 38@aymerictwit Apache doc: http://httpd.apache.org/docs/2.2/en/ et différents sites parcourus au fil du temps… Quelques billets sur Apache & Varnish: http://www.yapasdequoi.com Liens utiles et sources:
  • 39. 39@aymerictwit Merci d'avoir choisi cet atelier! Contact : http://twitter.com/aymerictwit Google+: https://plus.google.com/+AymericBouillat Linkedin: http://fr.linkedin.com/in/aymericbouillat Keep in touch 

Editor's Notes

  1. Directive location et directory, conf serveur et vhosts, plus rapides pour accélerer des traitements ne ciblant que des parties du site
  2. Pas que les analyseurs, les outils de crawl comme Xenu (pour ce qui se font scrapper leur annuaires-&amp;gt; domaining) ou autres…
  3. On peut bloquer les protocoles aussi (request_method)  hack avec limit get post / demo
  4. Tabloid norvégien , L’architecte du produit est le danois Poul-Henning Kamp, également contributeur historique au projet FreeBSD. Varnish=vernis Différence avec plug Wordpress. Utile pour les ressources dynamiques. Idéal pour les montées en charge. Contenu anonyme, attention cookies &amp; co  ajax, norme ESI