Mobile Responsive
Mobile-crawling fixtures covering a responsive single-URL baseline, alternate mobile URL pairing, User-Agent dynamic serving, AMP relationship discovery, and viewport and rendering defects.
Fixtures that let a crawler distinguish the four mobile configuration patterns and their defects.
Families:
- Responsive baseline: one URL serving byte-identical HTML to every
User-Agent, with a valid viewport meta and a linked media-query stylesheet.
There is deliberately no
Vary: User-Agentheader. - Alternate mobile URLs: a desktop page annotating its mobile alternate
via
rel="alternate"with amax-width: 640pxmedia attribute, and a mobile page whose canonical points back at the desktop URL. The mobile half stays out of the default sitemap because the canonical nominates the desktop URL as the indexable member of the pair. - Dynamic serving: five endpoints that switch body content on a
case-sensitive
Mobiletoken in the User-Agent. Every response sendsVary: User-Agentand a visible label declaring the deliberate UA-dependent content, so the family is never deceptive cloaking. The variants differ by marker, title, H1, word count, and outbound link set. These differences are only observable by crawlers that fetch with more than one User-Agent. - AMP relationship: an ordinary article advertising its AMP page via
rel="amphtml", and an AMP-flavoured page carrying the lightning-bolt andamphtml attributes plus a canonical back-link. The AMP runtime is never referenced; the capability under test is relationship discovery, not AMP validity. - Viewport and rendering: a missing viewport meta, an invalid
content="wibble"viewport meta, a media-query visibility fixture whose two markers both exist in the raw HTML but render one-at-a-time across a 640px breakpoint, and an undersized-touch-target sample of two 24x24px links 4px apart. Non-rendering crawlers cannot observe the breakpoint or tap-target geometry.
All routes are safe to crawl; the dynamic-serving endpoints are moderate because UA-dependent content needs the visible self-label to stay non-deceptive.
Fixtures in this category
- Responsive single URL —
responsive-single-url(safe) - Alternate mobile URL — desktop page —
mobile-alternate-desktop(safe) - Alternate mobile URL — mobile page —
mobile-alternate-mobile(safe) - Dynamic serving with Vary on User-Agent —
dynamic-serving-vary-user-agent(moderate) - Dynamic serving — title differs per variant —
mobile-title-different(moderate) - Dynamic serving — H1 differs per variant —
mobile-h1-different(moderate) - Dynamic serving — word count differs per variant —
mobile-word-count-different(moderate) - Dynamic serving — outbound links differ per variant —
mobile-outbound-links-different(moderate) - AMP relationship — canonical source —
amp-canonical-source(safe) - AMP relationship — AMP page —
amp-page(safe) - Viewport meta missing —
viewport-missing(safe) - Viewport meta invalid —
viewport-invalid(safe) - CSS media-query visibility markers —
css-media-query-marker(safe) - Undersized touch targets —
touch-target-marker(safe)