SlideShare ist ein Scribd-Unternehmen logo
Bastian Grimm, Peak Ace AG | @basgr
Erfolgreich migrieren: Planung, Umsetzung, Review & Monitoring
HTTPS Migration How-To
2 pa.ag
Keine Lust alles mitzuschreiben?
Dann notiere dir diesen Link:
https://pa.ag/smx17https
#1 WARUM HTTPS?
4 @peakaceag pa.ag
Re-visited: HTTPs als Ranking Faktor seit 2014…
Quelle: http://pa.ag/2e6X0ms
5 @peakaceag pa.ag
Ende 2014: Keine wirklichen Vorteile erkennbar!
Quelle: http://pa.ag/2e6Wt4h
6 @peakaceag pa.ag
Source: Searchmetrics US Ranking Factors 2016
7 @peakaceag pa.ag
HTTPs auch für Accelerated Mobile Pages (AMP) Pflicht!
Quelle: http://pa.ag/2fuOdYq
8 @peakaceag pa.ag
Quelle: http://pa.ag/2ekj4Gi
9 @peakaceag pa.ag
Even if you don't believe in a “boost” …
Seit Januar ‘17 werden HTTP Login- und Kreditkartenfelder als “unsicher” angezeigt.
Zukünftig werden alle HTTP-URLs auf diese Weise markiert.
#2 PLANUNG & VORBEREITUNG
Was verändert sich, was bleibt? Komplett umziehen oder selektiv?
(siehe Philipps Slides: clk.me/relaunch)
Migrationsstrategie definieren
12 @peakaceag pa.ag
Crawl-Budget während der Migration beachten
Wichtig: Wie lange dauert ein vollständiger Re-crawl meiner Seite?
 Um den Protokollwechsel zu realisieren, muss
Google die Domain vollständig neu crawlen
und ALLE URLs abrufen.
 Bei einer Domain mit bspw. 100.000 Unter-
seiten müsste Google also 200.000 URLs
verarbeiten (Redirects).
 Bei einer durchschnittlichen Anzahl von 30.000
„Pages crawled/day“ (siehe Screenshot) würde
das demnach mindestens ~7 Tage dauern.
 Die Annahme ist nur „halb valide“, da nicht alle
URLs nacheinander einmal abgerufen werden.
13 @peakaceag pa.ag
You‘ll be needing tools… lots of them!
Vieles ist persönlicher Geschmack, aber mindestens je einmal:
Crawling, Logfiles & Search Intelligence – und ja, das kostet Geld!
14 @peakaceag pa.ag
Pre-Migration Website Health Check & Clean-Up
Sauber optimierte Domains lassen sich deutlich einfacher und effizienter migrieren.
Das Risiko von Verlusten sinkt drastisch, wenn vorab aufgeräumt wird!
 Google Search Console: manuelle Maßnahmen,
Serverfehler (DNS, 5XXer), Mark-Up Validation
Errors (AMP, schema.org, Rich Cards), robots.txt
 Web Crawl: Interne Redirects (& Ketten), Broken
URLs und interne Verlinkung
 Logfiles: Broken URLs, auffällige Statuscodes,
Crawler-Traps
 Algo Issues? Mit Panda, Penguin & Co.
umzuziehen ist wenig sinnvoll…
15 @peakaceag pa.ag
16 @peakaceag pa.ag
HTTP URLs inventarisieren & dokumentieren
Must have: Logfiles, XML Sitemaps und Web-Site Crawl
Nice to have: Web- und Search Analytics (Trafficstarke bzw. URLs mit Top-Rankings)
Mode > List > Upload
Kleine Domains
Große Domains
17 @peakaceag pa.ag
Tägliches Keyword Ranking Monitoring etablieren
Erfassen des Status Quo kritischer Rankings bzw. Keywords; Ändern der Monitoring
Frequenz auf „täglich“ für möglichst aktuelle Daten
#3 UPDATES & ANPASSUNGEN
19 @peakaceag pa.ag
Canonical Tags & weitere rel-Alternate Notationen
Bei dedizierter Mobile-Website entsprechende Annotation nicht vergessen!
Verwendet ihr RSS-Feeds? Auch hier muss angepasst werden!
CANONICAL TAG
<link href="http://www.example.com/deep/url" rel="canonical" />
<link href="https://www.example.com/deep/url" rel="canonical" />
ALT
NEU
<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/page-1" />
<link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/page-1" />
ALT
NEU
MOBILE TAG
20 @peakaceag pa.ag
rel=next/prev Paginierungen & Accelerated Mobile Pages
Nutzt ihr Googles Empfehlung zur Paginierung? Oder AMPs? Mark-Up Update!
PAGINIERUNG
<link href="http://www.example.com/deep/url?page=1" rel="prev" />
<link href="https://www.example.com/deep/url?page=1" rel="prev" />
ALT
NEU
<link href="http://www.example.com/deep/url?page=3" rel="next" />
ALT
<link href="https://www.example.com/deep/url?page=3" rel="next" />
NEU
AMP
<link rel="amphtml" href="http://www.example.com/amp/" />
<link rel="amphtml" href="https://www.example.com/amp/" />
ALT
NEU
21 @peakaceag pa.ag
Mehrsprachiges Setup? hreflang-Ziele anpassen
Auch einzelne Länder problemlos möglich, wichtig ist nur, dass der Kreisbezug passt.
HREFLANG
<link rel="alternate" hreflang="de" href="http://www.example.com/de/" />
ALT
<link rel="alternate" hreflang="fr" href="http://www.example.com/fr/" />
ALT
<link rel="alternate" hreflang="de" href="https://www.example.com/de/" />
NEU
<link rel="alternate" hreflang="x-default" href="http://www.example.com/" />
ALT
<link rel="alternate" hreflang="fr" href="https://www.example.com/fr/" />
NEU
<link rel="alternate" hreflang="x-default" href="https://www.example.com/" />
NEU
22 @peakaceag pa.ag
Interne Verlinkung aktualisieren
Sich einfach auf die Weiterleitungen zu verlassen ist keine Migrationsstrategie!
 Links zu anderen internen URLs im HTML Source Code
 Links zu internen Imagefiles im HTML Source Code
 Links zu internen Videofiles im HTML Source Code
 Links zu internen Web Fonts im HTML Source Code
 Links zu internen Javascript Files im HTML Source Code
 Links zu internen CSS Files im HTML Source Code
 Links zu anderen internen URLs in den JavaScript Files
 Links zu internen Imagefiles in den JavaScript Files
 Links zu internen CSS Files in den JavaScript Files
 Links zu internen Imagefiles in den CSS Files
 Links zu internen Web Fonts in den CSS Files
 Jegliche andere interne Links.
23 @peakaceag pa.ag
Vorsicht bei internen Weiterleitungen!
Weiterleitungsketten vermeiden; die alten HTTP-URLs müssen zukünftig direkt auf die
neue HTTPs-URL weiterleiten!
Quelle: Redirect Chain Report via DeepCrawl
xxxx
xxxx
xxxx
xxxx
xxxx
24 @peakaceag pa.ag
XML Sitemaps aktualisieren #1
Wichtig: Bei Verwendung des Sitemap Index Files muss auch hier eingegriffen werden!
Solltet ihr die Sitemap in der robots.txt referenzieren, ist die URL dort zu aktualisieren.
<url>
<loc>http://www.example.com/</loc>
<xhtml:link rel="alternate" hreflang="x-default" href="http://www.example.com/" />
<xhtml:link rel="alternate" hreflang=“de" href="http://www.example.com/de/" />
<xhtml:link rel="alternate" hreflang="fr" href="http://www.example.com/fr/" />
<xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/" />
<image:image>
<image:loc>http://www.example.com/ich-bin-ein-bild.jpg</image:loc>
</image:image>
<video:video>
<video:content_loc>http://www.example.com/ich-bin-ein-video.flv</video:content_loc>
</video:video>
</url>
1
2
3
4
5
6
7
8
9
10
11
12
13
ALT
25 @peakaceag pa.ag
XML Sitemaps aktualisieren #2
Wichtig: Bei Verwendung des Sitemap Index Files muss auch hier eingegriffen werden!
Solltet ihr die Sitemap in der robots.txt referenzieren, ist die URL dort zu aktualisieren.
<url>
<loc>https://www.example.com/</loc>
<xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/" />
<xhtml:link rel="alternate" hreflang=“de" href="https://www.example.com/de/" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.example.com/fr/" />
<xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/" />
<image:image>
<image:loc>https://www.example.com/ich-bin-ein-bild.jpg</image:loc>
</image:image>
<video:video>
<video:content_loc>https://www.example.com/ich-bin-ein-video.flv</video:content_loc>
</video:video>
</url>
1
2
3
4
5
6
7
8
9
10
11
12
13
NEU
26 @peakaceag pa.ag
Structured Data Update (schema.org)
Auch die Referenzen des schema.org Mark-Ups sind zu aktualisieren!
Achtung: Die Kurznotation „//schema.org“ validiert gemäß Testing Tool derzeit nicht!
<script type="application/ld+json"> {
"@context": "http://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "reviewCount":
"100" },
"description": "Hier stet eine tolle Produktbeschreibung",
"name": "Und hier der super Produktname",
"image": "http://www.example.com/ich-bin-ein-bild.jpg",
"offers": { "@type": "Offer", "availability": "http://schema.org/InStock", "price": "55.00", "priceCurrency": "EUR" }
} </script>
ALT
1
2
3
4
5
6
7
8
<script type="application/ld+json"> {
"@context": "https://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5",
"reviewCount": "100" },
"description": "Hier stet eine tolle Produktbeschreibung",
"name": "Und hier der super Produktname",
"image": "https://www.example.com/ich-bin-ein-bild.jpg",
"offers": { "@type": "Offer", "availability": "https://schema.org/InStock", "price": "55.00", "priceCurrency": "EUR" }
} </script>
NEU
1
2
3
4
5
6
7
8
27 @peakaceag pa.ag
rel=next/prev Paginierungen & Accelerated Mobile Pages
Nutzt ihr Googles Empfehlung zur Paginierung? Oder AMPs? Mark-Up Update!
RESSOURCE HINTS
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
ALT
NEU
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
CDN
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
ALT
NEU
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
ODER AUCH
ODER AUCH
28 @peakaceag pa.ag
HTTP Header updaten & Cookie Einstellungen anpassen
Sofern verwendet: X-Robots Header Tags anpassen. Chrome Dev. Tools verwenden!
X-Robots rel-canonical via Apache .htaccess
<Files theRequestedFile.pdf >
Header add Link 'https://www.example.com/ebook.html; rel="canonical"'
</Files>
Andere HTTP Header Varianten:
 Link: <https://www.example.com/de/>; rel="alternate"; hreflang="de"
 Link: <https://www.example.com/someurl>; rel="canonical"
 Link: <https://cdn.example.com>; rel="dns-prefetch"
Vertrauen ist gut, Kontrolle besser: Zeit für einen Test-Crawl
der neuen HTTPS-Version!
Alles angepasst?
30 @peakaceag pa.ag
Sicherstellen, dass keine HTTP-Links verbleiben!
Außerdem: Bevor die Migration tatsächlich durchgeführt wird, ist zu überprüfen,
ob tatsächlich keine HTTP-Anfragen mehr auf dem HTTPS-System stattfinden!
31 @peakaceag pa.ag
Side-by-Side Vergleich des Crawls/der XML Sitemaps
Um sicherzustellen, dass der Content 1:1 so verfügbar ist, wie auf der HTTP-Variante,
unbedingt das Inventar vergleichen! (HTTP vs. HTTPs z.B. via ScreamingFrog+Excel)
32 @peakaceag pa.ag
Kurzer Exkurs: HTTPs spezifischer Crawl-Output
DeepCrawl reportet u.a. auch HSTS Header sowie unsichere Formulare
#4 GOOGLE SEARCH CONSOLE
34 @peakaceag pa.ag
HTTPs Properties anlegen & im GSC-Set zusammenführen
Properties für HTTP und HTTPs jeweils mit und ohne WWW = 4 Domains
Solltet ihr separate Mobile Domains verwenden, sind es 6 Domains insgesamt!
Voraussetzungen für eine Migration:
 Keine manuellen Maßnahmen
 Keine signifikante Menge an Crawl Errors
(DNS, Erreichbarkeit)
 Keine Probleme mit den XML Sitemaps
 Valides Structured bzw. Rich Cards Mark-
Up, dito keine AMP und hreflang-Fehler
http://xxxxxxx.de/
https://xxxxxxx.de/
http://www.xxxxxxx.de/
https://www.xxxxxxx.de/
https://www.xxxxxxx.de/
http://www.xxxxx.de/
35 @peakaceag pa.ag
GSC Fetch & Render testen – dann an den Index senden!
Prüft, ob Google alle „requested components“ sauber inkludiert und darstellt!
36 @peakaceag pa.ag
Disavow Links File übertragen
Besonders bei Domains mit problematischem Linkprofil: GSC Setup und Übertragung
des Files circa 48 Stunden vor dem Live-Switch erledigen!
37 @peakaceag pa.ag
Bevorzugte Domain sowie ggf. Crawl-Rate einstellen
Eigentlich sind Einstellungen zur Crawl-Rate überflüssig, wurden diese aber verwendet,
sollte hier zur Sicherheit ebenfalls der Ursprungszustand übertragen werden.
38 @peakaceag pa.ag
Geo-Targeting für gTLDs konfigurieren
Sofern verwendet bzw. notwendig (gTLDs wie .com) sind zusätzlich auch die
Einstellungen zum Handling von URL-Parametern zu synchronisieren!
39 @peakaceag pa.ag
XML Sitemaps testen & neu übermitteln
Sofern verwendet bzw. funktional notwendig sind auch die Einstellungen zum Handling
von URL-Parametern zu synchronisieren!
#5 MIGRATION TIME
So viel Vorbereitung und dann „nur“ noch URLs weiterleiten!
301-Redirect all the things!
42 @peakaceag pa.ag
List Crawl der alten HTTP-URLs & manuelle SERP Kontrolle
HTTP-URLs bspw. in ScreamingFrog importieren (List Mode), hier sollten nur noch 301er
auftauchen. Zusätzlich manuelle Kontrolle der indexierten URLS mittels LinkClump.
1 3
4
2
#6 POST MIGRATION TO-DO‘S
Schaut euch unbedingt 4XXer sowie 5XXer Status Codes genau an, diese
sind idealerweise „live“ zu korrigieren.
Logfile-, GSC- & GA-Error Monitoring
45 pa.ag
Migration Performance Monitoring #1
46 pa.ag
Migration Performance Monitoring #2
47 pa.ag
Migration Performance Monitoring #3
48 @peakaceag pa.ag
AMP, Structured Data & Rich Cards Error Monitoring
Crawl-Frequenz im Auge behalten!
Abgleich vorher/nachher bzw. fortlaufend.
Keyword Ranking Monitoring
51 pa.ag
To-Do‘s & Themen nach einer erfolgreichen Migration:
 Externe Links aktualisieren
Für sehr wertvolle, externe Verlinkungen könnte sich der Aufwand, selbige
aktualisieren zu lassen, durchaus lohnen.
 HSTS Pre-loading
Implementation der “HTTP Strict Transport Security” um unnötige
Weiterleitungen (von HTTP auf HTTPS) zu vermeiden. Der Browser ruft die
Domain zukünftig direkt als HTTPs auf.
 Content-Security-Policy implementieren
Automatisches Upgrade von alten HTTP-Elementen auf HTTPs, zusätzlicher
XSS Schutz
 HTTP/2 verwenden
52 pa.ag
Nutzt die Vorteile von HTTPs: HTTP/2 ist raketenschnell!
If you are using HTTPs
without HTTP/2 (SPDY)
you are doing it all wrong!
„
53 @peakaceag pa.ag
Side-by-Side Performance Vergleich
HTTPs ist (ohne weiteres Zutun) etwas langsamer: Vergleicht eure Ergebnisse
miteinander. Klares Ziel: Keinesfalls langsamer als vorher!
Ausprobieren: https://www.webpagetest.org/
54 pa.ag
Must-read: Fili Wieses‘ Guide zur HTTPs-Migration!
Mehr: https://online.marketing/guide/https
https://pa.ag/smx17https
Always looking for talent! Check out jobs.pa.ag
Bastian Grimm
bg@pa.ag
twitter.com/peakaceag
facebook.com/peakaceag
www.pa.ag
Doppelt hält besser! Hier der Link zur Präsentation:

Weitere ähnliche Inhalte

HTTPs Migration How To - SMX München 2017

  • 1. Bastian Grimm, Peak Ace AG | @basgr Erfolgreich migrieren: Planung, Umsetzung, Review & Monitoring HTTPS Migration How-To
  • 2. 2 pa.ag Keine Lust alles mitzuschreiben? Dann notiere dir diesen Link: https://pa.ag/smx17https
  • 4. 4 @peakaceag pa.ag Re-visited: HTTPs als Ranking Faktor seit 2014… Quelle: http://pa.ag/2e6X0ms
  • 5. 5 @peakaceag pa.ag Ende 2014: Keine wirklichen Vorteile erkennbar! Quelle: http://pa.ag/2e6Wt4h
  • 6. 6 @peakaceag pa.ag Source: Searchmetrics US Ranking Factors 2016
  • 7. 7 @peakaceag pa.ag HTTPs auch für Accelerated Mobile Pages (AMP) Pflicht! Quelle: http://pa.ag/2fuOdYq
  • 8. 8 @peakaceag pa.ag Quelle: http://pa.ag/2ekj4Gi
  • 9. 9 @peakaceag pa.ag Even if you don't believe in a “boost” … Seit Januar ‘17 werden HTTP Login- und Kreditkartenfelder als “unsicher” angezeigt. Zukünftig werden alle HTTP-URLs auf diese Weise markiert.
  • 10. #2 PLANUNG & VORBEREITUNG
  • 11. Was verändert sich, was bleibt? Komplett umziehen oder selektiv? (siehe Philipps Slides: clk.me/relaunch) Migrationsstrategie definieren
  • 12. 12 @peakaceag pa.ag Crawl-Budget während der Migration beachten Wichtig: Wie lange dauert ein vollständiger Re-crawl meiner Seite?  Um den Protokollwechsel zu realisieren, muss Google die Domain vollständig neu crawlen und ALLE URLs abrufen.  Bei einer Domain mit bspw. 100.000 Unter- seiten müsste Google also 200.000 URLs verarbeiten (Redirects).  Bei einer durchschnittlichen Anzahl von 30.000 „Pages crawled/day“ (siehe Screenshot) würde das demnach mindestens ~7 Tage dauern.  Die Annahme ist nur „halb valide“, da nicht alle URLs nacheinander einmal abgerufen werden.
  • 13. 13 @peakaceag pa.ag You‘ll be needing tools… lots of them! Vieles ist persönlicher Geschmack, aber mindestens je einmal: Crawling, Logfiles & Search Intelligence – und ja, das kostet Geld!
  • 14. 14 @peakaceag pa.ag Pre-Migration Website Health Check & Clean-Up Sauber optimierte Domains lassen sich deutlich einfacher und effizienter migrieren. Das Risiko von Verlusten sinkt drastisch, wenn vorab aufgeräumt wird!  Google Search Console: manuelle Maßnahmen, Serverfehler (DNS, 5XXer), Mark-Up Validation Errors (AMP, schema.org, Rich Cards), robots.txt  Web Crawl: Interne Redirects (& Ketten), Broken URLs und interne Verlinkung  Logfiles: Broken URLs, auffällige Statuscodes, Crawler-Traps  Algo Issues? Mit Panda, Penguin & Co. umzuziehen ist wenig sinnvoll…
  • 16. 16 @peakaceag pa.ag HTTP URLs inventarisieren & dokumentieren Must have: Logfiles, XML Sitemaps und Web-Site Crawl Nice to have: Web- und Search Analytics (Trafficstarke bzw. URLs mit Top-Rankings) Mode > List > Upload Kleine Domains Große Domains
  • 17. 17 @peakaceag pa.ag Tägliches Keyword Ranking Monitoring etablieren Erfassen des Status Quo kritischer Rankings bzw. Keywords; Ändern der Monitoring Frequenz auf „täglich“ für möglichst aktuelle Daten
  • 18. #3 UPDATES & ANPASSUNGEN
  • 19. 19 @peakaceag pa.ag Canonical Tags & weitere rel-Alternate Notationen Bei dedizierter Mobile-Website entsprechende Annotation nicht vergessen! Verwendet ihr RSS-Feeds? Auch hier muss angepasst werden! CANONICAL TAG <link href="http://www.example.com/deep/url" rel="canonical" /> <link href="https://www.example.com/deep/url" rel="canonical" /> ALT NEU <link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/page-1" /> <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/page-1" /> ALT NEU MOBILE TAG
  • 20. 20 @peakaceag pa.ag rel=next/prev Paginierungen & Accelerated Mobile Pages Nutzt ihr Googles Empfehlung zur Paginierung? Oder AMPs? Mark-Up Update! PAGINIERUNG <link href="http://www.example.com/deep/url?page=1" rel="prev" /> <link href="https://www.example.com/deep/url?page=1" rel="prev" /> ALT NEU <link href="http://www.example.com/deep/url?page=3" rel="next" /> ALT <link href="https://www.example.com/deep/url?page=3" rel="next" /> NEU AMP <link rel="amphtml" href="http://www.example.com/amp/" /> <link rel="amphtml" href="https://www.example.com/amp/" /> ALT NEU
  • 21. 21 @peakaceag pa.ag Mehrsprachiges Setup? hreflang-Ziele anpassen Auch einzelne Länder problemlos möglich, wichtig ist nur, dass der Kreisbezug passt. HREFLANG <link rel="alternate" hreflang="de" href="http://www.example.com/de/" /> ALT <link rel="alternate" hreflang="fr" href="http://www.example.com/fr/" /> ALT <link rel="alternate" hreflang="de" href="https://www.example.com/de/" /> NEU <link rel="alternate" hreflang="x-default" href="http://www.example.com/" /> ALT <link rel="alternate" hreflang="fr" href="https://www.example.com/fr/" /> NEU <link rel="alternate" hreflang="x-default" href="https://www.example.com/" /> NEU
  • 22. 22 @peakaceag pa.ag Interne Verlinkung aktualisieren Sich einfach auf die Weiterleitungen zu verlassen ist keine Migrationsstrategie!  Links zu anderen internen URLs im HTML Source Code  Links zu internen Imagefiles im HTML Source Code  Links zu internen Videofiles im HTML Source Code  Links zu internen Web Fonts im HTML Source Code  Links zu internen Javascript Files im HTML Source Code  Links zu internen CSS Files im HTML Source Code  Links zu anderen internen URLs in den JavaScript Files  Links zu internen Imagefiles in den JavaScript Files  Links zu internen CSS Files in den JavaScript Files  Links zu internen Imagefiles in den CSS Files  Links zu internen Web Fonts in den CSS Files  Jegliche andere interne Links.
  • 23. 23 @peakaceag pa.ag Vorsicht bei internen Weiterleitungen! Weiterleitungsketten vermeiden; die alten HTTP-URLs müssen zukünftig direkt auf die neue HTTPs-URL weiterleiten! Quelle: Redirect Chain Report via DeepCrawl xxxx xxxx xxxx xxxx xxxx
  • 24. 24 @peakaceag pa.ag XML Sitemaps aktualisieren #1 Wichtig: Bei Verwendung des Sitemap Index Files muss auch hier eingegriffen werden! Solltet ihr die Sitemap in der robots.txt referenzieren, ist die URL dort zu aktualisieren. <url> <loc>http://www.example.com/</loc> <xhtml:link rel="alternate" hreflang="x-default" href="http://www.example.com/" /> <xhtml:link rel="alternate" hreflang=“de" href="http://www.example.com/de/" /> <xhtml:link rel="alternate" hreflang="fr" href="http://www.example.com/fr/" /> <xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/" /> <image:image> <image:loc>http://www.example.com/ich-bin-ein-bild.jpg</image:loc> </image:image> <video:video> <video:content_loc>http://www.example.com/ich-bin-ein-video.flv</video:content_loc> </video:video> </url> 1 2 3 4 5 6 7 8 9 10 11 12 13 ALT
  • 25. 25 @peakaceag pa.ag XML Sitemaps aktualisieren #2 Wichtig: Bei Verwendung des Sitemap Index Files muss auch hier eingegriffen werden! Solltet ihr die Sitemap in der robots.txt referenzieren, ist die URL dort zu aktualisieren. <url> <loc>https://www.example.com/</loc> <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/" /> <xhtml:link rel="alternate" hreflang=“de" href="https://www.example.com/de/" /> <xhtml:link rel="alternate" hreflang="fr" href="https://www.example.com/fr/" /> <xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/" /> <image:image> <image:loc>https://www.example.com/ich-bin-ein-bild.jpg</image:loc> </image:image> <video:video> <video:content_loc>https://www.example.com/ich-bin-ein-video.flv</video:content_loc> </video:video> </url> 1 2 3 4 5 6 7 8 9 10 11 12 13 NEU
  • 26. 26 @peakaceag pa.ag Structured Data Update (schema.org) Auch die Referenzen des schema.org Mark-Ups sind zu aktualisieren! Achtung: Die Kurznotation „//schema.org“ validiert gemäß Testing Tool derzeit nicht! <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "reviewCount": "100" }, "description": "Hier stet eine tolle Produktbeschreibung", "name": "Und hier der super Produktname", "image": "http://www.example.com/ich-bin-ein-bild.jpg", "offers": { "@type": "Offer", "availability": "http://schema.org/InStock", "price": "55.00", "priceCurrency": "EUR" } } </script> ALT 1 2 3 4 5 6 7 8 <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "reviewCount": "100" }, "description": "Hier stet eine tolle Produktbeschreibung", "name": "Und hier der super Produktname", "image": "https://www.example.com/ich-bin-ein-bild.jpg", "offers": { "@type": "Offer", "availability": "https://schema.org/InStock", "price": "55.00", "priceCurrency": "EUR" } } </script> NEU 1 2 3 4 5 6 7 8
  • 27. 27 @peakaceag pa.ag rel=next/prev Paginierungen & Accelerated Mobile Pages Nutzt ihr Googles Empfehlung zur Paginierung? Oder AMPs? Mark-Up Update! RESSOURCE HINTS <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> ALT NEU <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> CDN <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> ALT NEU <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> ODER AUCH ODER AUCH
  • 28. 28 @peakaceag pa.ag HTTP Header updaten & Cookie Einstellungen anpassen Sofern verwendet: X-Robots Header Tags anpassen. Chrome Dev. Tools verwenden! X-Robots rel-canonical via Apache .htaccess <Files theRequestedFile.pdf > Header add Link 'https://www.example.com/ebook.html; rel="canonical"' </Files> Andere HTTP Header Varianten:  Link: <https://www.example.com/de/>; rel="alternate"; hreflang="de"  Link: <https://www.example.com/someurl>; rel="canonical"  Link: <https://cdn.example.com>; rel="dns-prefetch"
  • 29. Vertrauen ist gut, Kontrolle besser: Zeit für einen Test-Crawl der neuen HTTPS-Version! Alles angepasst?
  • 30. 30 @peakaceag pa.ag Sicherstellen, dass keine HTTP-Links verbleiben! Außerdem: Bevor die Migration tatsächlich durchgeführt wird, ist zu überprüfen, ob tatsächlich keine HTTP-Anfragen mehr auf dem HTTPS-System stattfinden!
  • 31. 31 @peakaceag pa.ag Side-by-Side Vergleich des Crawls/der XML Sitemaps Um sicherzustellen, dass der Content 1:1 so verfügbar ist, wie auf der HTTP-Variante, unbedingt das Inventar vergleichen! (HTTP vs. HTTPs z.B. via ScreamingFrog+Excel)
  • 32. 32 @peakaceag pa.ag Kurzer Exkurs: HTTPs spezifischer Crawl-Output DeepCrawl reportet u.a. auch HSTS Header sowie unsichere Formulare
  • 33. #4 GOOGLE SEARCH CONSOLE
  • 34. 34 @peakaceag pa.ag HTTPs Properties anlegen & im GSC-Set zusammenführen Properties für HTTP und HTTPs jeweils mit und ohne WWW = 4 Domains Solltet ihr separate Mobile Domains verwenden, sind es 6 Domains insgesamt! Voraussetzungen für eine Migration:  Keine manuellen Maßnahmen  Keine signifikante Menge an Crawl Errors (DNS, Erreichbarkeit)  Keine Probleme mit den XML Sitemaps  Valides Structured bzw. Rich Cards Mark- Up, dito keine AMP und hreflang-Fehler http://xxxxxxx.de/ https://xxxxxxx.de/ http://www.xxxxxxx.de/ https://www.xxxxxxx.de/ https://www.xxxxxxx.de/ http://www.xxxxx.de/
  • 35. 35 @peakaceag pa.ag GSC Fetch & Render testen – dann an den Index senden! Prüft, ob Google alle „requested components“ sauber inkludiert und darstellt!
  • 36. 36 @peakaceag pa.ag Disavow Links File übertragen Besonders bei Domains mit problematischem Linkprofil: GSC Setup und Übertragung des Files circa 48 Stunden vor dem Live-Switch erledigen!
  • 37. 37 @peakaceag pa.ag Bevorzugte Domain sowie ggf. Crawl-Rate einstellen Eigentlich sind Einstellungen zur Crawl-Rate überflüssig, wurden diese aber verwendet, sollte hier zur Sicherheit ebenfalls der Ursprungszustand übertragen werden.
  • 38. 38 @peakaceag pa.ag Geo-Targeting für gTLDs konfigurieren Sofern verwendet bzw. notwendig (gTLDs wie .com) sind zusätzlich auch die Einstellungen zum Handling von URL-Parametern zu synchronisieren!
  • 39. 39 @peakaceag pa.ag XML Sitemaps testen & neu übermitteln Sofern verwendet bzw. funktional notwendig sind auch die Einstellungen zum Handling von URL-Parametern zu synchronisieren!
  • 41. So viel Vorbereitung und dann „nur“ noch URLs weiterleiten! 301-Redirect all the things!
  • 42. 42 @peakaceag pa.ag List Crawl der alten HTTP-URLs & manuelle SERP Kontrolle HTTP-URLs bspw. in ScreamingFrog importieren (List Mode), hier sollten nur noch 301er auftauchen. Zusätzlich manuelle Kontrolle der indexierten URLS mittels LinkClump. 1 3 4 2
  • 43. #6 POST MIGRATION TO-DO‘S
  • 44. Schaut euch unbedingt 4XXer sowie 5XXer Status Codes genau an, diese sind idealerweise „live“ zu korrigieren. Logfile-, GSC- & GA-Error Monitoring
  • 48. 48 @peakaceag pa.ag AMP, Structured Data & Rich Cards Error Monitoring
  • 50. Abgleich vorher/nachher bzw. fortlaufend. Keyword Ranking Monitoring
  • 51. 51 pa.ag To-Do‘s & Themen nach einer erfolgreichen Migration:  Externe Links aktualisieren Für sehr wertvolle, externe Verlinkungen könnte sich der Aufwand, selbige aktualisieren zu lassen, durchaus lohnen.  HSTS Pre-loading Implementation der “HTTP Strict Transport Security” um unnötige Weiterleitungen (von HTTP auf HTTPS) zu vermeiden. Der Browser ruft die Domain zukünftig direkt als HTTPs auf.  Content-Security-Policy implementieren Automatisches Upgrade von alten HTTP-Elementen auf HTTPs, zusätzlicher XSS Schutz  HTTP/2 verwenden
  • 52. 52 pa.ag Nutzt die Vorteile von HTTPs: HTTP/2 ist raketenschnell! If you are using HTTPs without HTTP/2 (SPDY) you are doing it all wrong! „
  • 53. 53 @peakaceag pa.ag Side-by-Side Performance Vergleich HTTPs ist (ohne weiteres Zutun) etwas langsamer: Vergleicht eure Ergebnisse miteinander. Klares Ziel: Keinesfalls langsamer als vorher! Ausprobieren: https://www.webpagetest.org/
  • 54. 54 pa.ag Must-read: Fili Wieses‘ Guide zur HTTPs-Migration! Mehr: https://online.marketing/guide/https
  • 55. https://pa.ag/smx17https Always looking for talent! Check out jobs.pa.ag Bastian Grimm bg@pa.ag twitter.com/peakaceag facebook.com/peakaceag www.pa.ag Doppelt hält besser! Hier der Link zur Präsentation: