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:

HTTPs Migration How To - SMX München 2017

  • 1.
    Bastian Grimm, PeakAce AG | @basgr Erfolgreich migrieren: Planung, Umsetzung, Review & Monitoring HTTPS Migration How-To
  • 2.
    2 pa.ag Keine Lustalles mitzuschreiben? Dann notiere dir diesen Link: https://pa.ag/smx17https
  • 3.
  • 4.
    4 @peakaceag pa.ag Re-visited:HTTPs als Ranking Faktor seit 2014… Quelle: http://pa.ag/2e6X0ms
  • 5.
    5 @peakaceag pa.ag Ende2014: 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 HTTPsauch 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 Evenif 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-Budgetwä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‘llbe 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-MigrationWebsite 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.
  • 16.
    16 @peakaceag pa.ag HTTPURLs 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äglichesKeyword 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 CanonicalTags & 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/prevPaginierungen & 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 MehrsprachigesSetup? 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 InterneVerlinkung 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 Vorsichtbei 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 XMLSitemaps 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 XMLSitemaps 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 StructuredData 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/prevPaginierungen & 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 HTTPHeader 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-SideVergleich 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 KurzerExkurs: HTTPs spezifischer Crawl-Output DeepCrawl reportet u.a. auch HSTS Header sowie unsichere Formulare
  • 33.
  • 34.
    34 @peakaceag pa.ag HTTPsProperties 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 GSCFetch & Render testen – dann an den Index senden! Prüft, ob Google alle „requested components“ sauber inkludiert und darstellt!
  • 36.
    36 @peakaceag pa.ag DisavowLinks 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 BevorzugteDomain 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-Targetingfü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 XMLSitemaps testen & neu übermitteln Sofern verwendet bzw. funktional notwendig sind auch die Einstellungen zum Handling von URL-Parametern zu synchronisieren!
  • 40.
  • 41.
    So viel Vorbereitungund dann „nur“ noch URLs weiterleiten! 301-Redirect all the things!
  • 42.
    42 @peakaceag pa.ag ListCrawl 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.
  • 44.
    Schaut euch unbedingt4XXer sowie 5XXer Status Codes genau an, diese sind idealerweise „live“ zu korrigieren. Logfile-, GSC- & GA-Error Monitoring
  • 45.
  • 46.
  • 47.
  • 48.
    48 @peakaceag pa.ag AMP,Structured Data & Rich Cards Error Monitoring
  • 49.
  • 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 dieVorteile 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-SidePerformance 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: FiliWieses‘ Guide zur HTTPs-Migration! Mehr: https://online.marketing/guide/https
  • 55.
    https://pa.ag/smx17https Always looking fortalent! 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: