Product
Fixing Viewport Configuration without guessing
Fix viewport configuration with evidence: identify the template that owns the head, restore mobile viewport setup and zoom-safe behavior, then rescan the same URLs.
· by Sam Ortega

Handoff week is a bad time to guess which template owns <head>. When Viewport configuration fails, the fix path is usually boring: restore mobile viewport setup, remove zoom traps, publish, rescan. SlaySlop's check "Checks mobile viewport setup and zoom-safe behavior." Guessing looks like editing a single page while the layout shell keeps shipping the bad meta.
I have watched agencies patch the homepage twice and still fail the campaign URL. Process beats heroics. Clients remember the phone demo, not your Jira debate about which repo owns the layout.
Outcome you want
Named URLs pass Viewport configuration, or the residual risk is written. The head owner is known. Zoom constraints are gone unless the client signed off. Portal notes include the rescan time. Sibling accessibility findings stay on their own tickets so the warranty call does not turn into a blame circle.
Boundaries before you edit
Only change sites you own, manage, or have permission to modify. SlaySlop is read-only and will not push HTML. Not a pentest. Not a redesign brief. Fixing viewport configuration will not repair unlabeled buttons by itself. Permission still matters when you re-scan after the fix.
Loading diagram.
Step 1: name the failing URL and the head owner
Ask who can publish HTML. Theme developers, landing-page builders, and marketing ops often share that power without sharing a runbook.
fix_ticket:
url: https://example.com/promo
head_owner: theme|landing-builder|gtm-html|ab-shell
intent: mobile viewport + zoom-safe
acceptance: client sign-off if zoom must stay locked for kiosk
sibling_tickets: accessibility-audit, accessible-namesStep 2: read evidence before editing
Open the scan row. Confirm whether the problem is missing setup, constrained zoom, or a different template than the one engineering thought was live. Curl helps on permissioned URLs when you need to see the exact attribute string.
URL=https://example.com/promo
curl -sL "$URL" | tr '\n' ' ' | sed 's/</\n</g' | rg -i 'meta[^>]*viewport'If two viewport meta tags appear, that is a conflict to resolve, not a reason to add a third.
Step 3: patch the source of truth, not a one-off
Prefer the layout shell. If the landing builder injects its own head, fix the builder defaults. If a tag manager HTML tag injects a second viewport meta, remove the conflict instead of stacking tags. Document the publish path so the next person does not "fix" the wrong surface again.
<meta name="viewport" content="width=device-width, initial-scale=1">Step 4: verify the URL list, then rescan
Recheck homepage, primary conversion URL, and the campaign path that failed. Rescan the same public URLs. If Accessibility audit still fails, that is progress plus more work—not a reason to reopen the viewport ticket blindly. Reports and portals product copy notes that PDF exports, share links, and client portals keep findings and next actions together without dashboard access. Use that when the client needs proof.
Pitfalls
Editing CSS only. Breakpoints do not replace viewport meta.
Leaving maximum-scale "just for this launch." Launches become permanent. Write the exception or delete the constraint.
Skipping production. Staging fixes do not rewrite production CMS heads. I have lost count of how many times a staging badge screenshot calmed a room that still shipped a broken production head.
Forgetting warranty drift. Plugins republish heads. Schedule a rescan if the engagement includes a care window. Monitoring copy on SlaySlop: uptime probes and scheduled rescans tell you when something goes down or a fixed problem comes back.
Mixing webview policy into the public site ticket. Native shells can need different rules. Keep the public site fix on the public site evidence.
When the client insists on a zoom lock
Document the exception with a named approver and a narrow scope, such as a kiosk webview, not the public marketing site. Then split the properties: public URLs keep zoom-safe behavior; the exceptional shell gets its own QA path. Mixing those policies in one template is how the bad meta reaches production ads.
Related next step
Soft links: Viewport configuration, Monitoring, Reports and portals. Soft close: when the client needs the evidence without your login, use portals from a permissioned SlaySlop workspace instead of forwarding a raw dashboard screenshot.