marcolaterza.com — WordPress to Clean HTML Redesign · Zero Authority Loss Strategy
View Official InvoiceDeep data collection of the current state to ensure no existing SEO signals are lost.
| Status | Area | Task | Detailed Instructions |
|---|---|---|---|
|
|
Technical Crawling | Deep crawl of the current website | Use Screaming Frog or Sitebulb. Crawl 100% of live URLs. Export master Excel with: URL, Status Code, Title, Meta Desc, H1, H2, and Canonical. |
View Additional DetailsCrucial: This Excel file will be our 'Source of Truth' in Phase 5. Ensure you crawl as Googlebot Smartphone and disable JavaScript rendering if the site loads quickly without it, to see the raw code. |
|||
|
|
External Authority | Backlink Profile Export (GSC + Ahrefs/SEMrush)Added scope | Export Search Console → Links (plus Ahrefs/SEMrush if available) to identify which old URLs hold external backlinks. This is the real authority map — the internal crawl only tells you what exists, not what's worth protecting. |
View Additional DetailsWhy this matters: a "zero authority loss" plan that never looks at the external link profile has the biggest gap right where it counts. Any URL with backlinks gets top priority in the Phase 3 redirection matrix — losing one of these costs more than losing ten orphan pages. |
|||
|
|
Performance Data | GSC Performance Export (Top URLs & Queries)Added scope | Export the top URLs and queries by clicks from Search Console. Without this, every Status-200 page gets treated equally in QA and on-page care — with it, effort is weighted toward what actually drives traffic (typically the home page + a handful of pages carry the bulk of clicks). |
View Additional DetailsUse it for: risk-weighting the Phase 3 redirect QA and the Phase 2 meta/schema pass — the pages on this list get checked first and checked twice. |
|||
|
|
Digital Assets | Inventory of Images and PDFs | List all images in /wp-content/uploads/ and any indexed PDF files. Many users arrive via Google Images. |
|
|
Structured Data | Schema.org Backup (Yoast) | Extract the JSON-LD injected by Yoast SEO on the homepage and service pages. This defines the commercial entity to Google (LocalBusiness, Organization). |
View Additional DetailsAction: Open the source code of the homepage, search for |
|||
|
|
Content | Blog & Text Export | Migrate the content from the WP SQL database to clean files (Markdown or pure HTML). Preserve original publishing dates. |
Frontend construction optimizing for Core Web Vitals without losing the semantics Google already knows — filtered through a UX/UI pass focused on ultra-fast loading and maximum legibility.
| Status | Area | Task | Detailed Instructions |
|---|---|---|---|
|
|
URL Architecture | URL Mapping Decision (Redesign, Not Mirror)Added scope | This is a redesign + repositioning, not a like-for-like migration — the new site already has a different structure (e.g. /uber-marco/ → /ueber-mich, /blog/ → /insights, plus new pages like /mental-coaching-zuerich, /executive-health-coaching-zuerich, /personal-training-zuerich). For every old URL, decide explicitly: keep the slug, or 301 it to its new equivalent — and document why. |
View Additional DetailsWhy the change: "URL must be identical" only holds for a true mirror migration. Here the structure intentionally changed to support the new positioning — so the safety net is a complete, deliberate URL-by-URL map (feeding Phase 3), not an identical-routes rule. |
|||
|
|
Meta Tags | Recreating the SEO <head> | Each page must have its exact Title and Meta Desc from the Phase 1 Excel. For structured data: update the Person/ProfessionalService JSON-LD to the new positioning (performance/executive coaching, not just personal training) — do not clone the old Yoast graph 1:1. |
|
|
Strategy | Keyword Ownership Decision: "Personal Trainer Zürich"Added scope | The new site has two pages that can target this term: the homepage and /personal-training-zuerich. Decide explicitly which one leads. Decision: homepage keeps "Personal Trainer Zürich" in title + H1 (it already ranks for it); /personal-training-zuerich targets deeper, longer-tail intent (program detail, pricing, booking) to avoid cannibalizing the homepage. |
View Additional DetailsWhy this matters: two pages competing for the same head term split ranking signals instead of stacking them. Set the target keyword per page once, here, so the meta/H1 work above doesn't accidentally create the cannibalization it's meant to prevent. |
|||
|
|
Structure | Preserving Internal Link Juice | Recreate the main menu, footer, and any sidebar widgets. Keep text links exactly where they were. Avoid orphan pages. |
|
|
Performance | Core Web Vitals Optimization | All images must be in WebP format. Implement native lazy-loading loading="lazy" for images below the fold. Avoid render-blocking CSS. |
|
|
UX/UI | UX/UI Pass — Ultra-Fast & LegibleAdded scope | Filter every template through a UX/UI review focused on two things: instant perceived load (lightweight layout, no heavy libraries, minimal CSS/JS) and maximum legibility (type scale, contrast, spacing, comfortable line lengths on mobile). |
View Additional DetailsGoal: the site should feel instant and effortless to read. Faster pages and clearer reading directly improve engagement signals (lower bounce, longer dwell time) that feed back into rankings. |
|||
|
|
Typography | Font Research & Selection — Performance/UX (Indirect SEO Benefit)Added scope | Research and select a Google Font that guarantees legibility and loads efficiently. The font itself isn't a ranking factor — but how it loads affects LCP and CLS (real Core Web Vitals signals), and its readability drives the engagement metrics (bounce, dwell time) that do feed back into rankings. |
View Additional DetailsSelection criteria: excellent on-screen legibility at body sizes, few weights needed (lighter payload), good language coverage, and clean rendering on both desktop and mobile. Implementation: self-host or preload the font with |
|||
|
|
Tracking | Analytics & Tracking Migration (GA4)Added scope | Migrate the GA4 measurement ID and any conversion/event tags into the new site before launch. Verify the Search Console property is set at domain level (not URL-prefix) so it captures both the old and new paths through the transition. |
View Additional DetailsWhy this matters: a from-scratch rebuild is the easiest way to silently drop the analytics tag — losing data continuity on an SEO project is exactly the kind of gap a client notices first. |
|||
Management of any route changes to guarantee a complete transfer of authority.
| Status | Area | Task | Detailed Instructions |
|---|---|---|---|
|
|
301 Strategy | Redirection Matrix (Excel) | Compare Phase 1 Excel with the new site map. Create a redirections file, prioritized by the Phase 1 backlink export. Map every blog post individually — /blog/<slug> → /insights/<slug> — never just the /blog/ parent, or each post's individual ranking signal is lost. NEVER allow a 404 error! |
View Additional DetailsImplementation: Depending on where the HTML is hosted, this is done via |
|||
|
|
Media | Image Redirection (wp-content) | Configure a RegEx rule on the server that takes old paths /wp-content/uploads/(.*) and 301 redirects them to the new folder /assets/img/$1. |
|
|
Crawler Control | Block Staging from Indexing (Vercel Preview)Added scope | The staging preview (e.g. premium-experience.vercel.app) is publicly reachable. Add noindex (robots meta + X-Robots-Tag) on the preview while in pre-launch, and confirm it isn't already indexed by Google. |
View Additional DetailsAt launch: make sure the |
|||
|
|
Testing | Staging Redirect Test (Full List) | Before going live, run the full master URL list against staging (not a 10-route sample) to verify every old URL returns a 301 instantly, with no chains or loops (old → final URL directly). |
View Additional DetailsOptional: temporarily resubmit the old sitemap.xml in Search Console alongside the new one right after launch — it speeds up how fast Google discovers the 301s instead of waiting for organic recrawl. |
|||
Precise guides so Google bots understand the new structure immediately.
| Status | Area | Task | Detailed Instructions |
|---|---|---|---|
|
|
Indexing | Generating the new sitemap.xml | Dynamically or statically build the sitemap.xml file with all final routes. Ensure URLs include https://www. |
View Additional DetailsNote: Do not include URLs in the sitemap that will be redirected (301) or have Canonical tags pointing elsewhere. Only clean Status 200 URLs. |
|||
|
|
Crawler Control | Creation of robots.txt | Add the robots.txt file to the root of the site with directives allowing User-agent: * to crawl everything, and include the absolute path to the sitemap. |
|
|
Technical SEO | Canonical, Lang Attribute & hreflang (DE/EN) | Review file by file that the <link rel="canonical" href="..."> tag points to its own URL, and that <html lang="..."> matches the page's language (de-CH or en). On every page, add hreflang annotations (de-CH, en, x-default) pointing to the language counterpart. |
View Additional DetailsWhy this matters: the site toggles DE | EN. Without hreflang, the two language versions compete with each other and Google can serve the wrong one to Zürich's German-speaking locals or English-speaking expats. |
|||
Final deployment and meticulous live verification to ensure the transfer of authority — closed with a full speed & SEO performance audit.
| Status | Area | Task | Detailed Instructions |
|---|---|---|---|
|
|
Deployment | DNS Switch to Production | Turn off the WordPress server (keeping the database backed up) and point A and CNAME records to the new server hosting the static HTML code. |
|
|
Final Audit | Live Verification with Screaming Frog | IMPORTANT: Load the master Excel from Phase 1 into the crawler (List Mode) and run it against the newly launched site. Ensure ALL URLs return a 200 or 301 code. |
View Additional DetailsZero Error Tolerance: If you see a 404 or 500 HTTP error on this list, you must pause, go to the redirection rules (Phase 3), and fix it immediately before Googlebot reads it. |
|||
|
|
Performance | Speed & SEO Performance AuditAdded scope | Run a full audit of speed and overall SEO performance on the live site to guarantee everything is fast: PageSpeed Insights / Lighthouse on every key template, Core Web Vitals (LCP, CLS, INP), font loading, image weight, and on-page SEO checks. |
View Additional DetailsPass criteria: Lighthouse Performance and SEO scores in the green (90+) on mobile, LCP < 2.5s, CLS < 0.1. Any template below target gets optimized and re-tested before sign-off. |
|||
|
|
Search Console | Sitemap Submission & Manual Indexing | Log into Google Search Console. Delete the old Yoast sitemap, submit the new sitemap.xml. Use URL Inspection on the Home page and click 'Request Indexing'. |
|
|
Metrics | 15-Day Monitoring (GSC & Core Web Vitals) | Check GSC (Pages tab) daily for spikes in 404s. Run a PageSpeed Insights report to validate technical success (LCP < 2.5s) which will boost ranking. |
The full migration is covered by a fixed fee of €600, split into two equal payments.
Bank transfer details, payment references and the applicable tax notes are on the official invoice VAL-2026-0003 issued by Valírica.
View Official Invoice (VAL-2026-0003)