Very long pages are now captured, scored and checked
A page whose full-page screenshot came out taller than 16,384 pixels, most often a long page in its mobile view, failed to save every day, and Page Scores and Content Health skipped that page on that device along with it. Those screenshots are now saved and compared, so the page starts showing visual history, Lighthouse scores and link and image results for that device from its next scan.
- Full-page screenshots are now stored with no compression loss. Compression noise no longer counts towards a change, so the percentage on a small change can differ a little from earlier days, and a very faint colour shift that only registered through that noise may no longer be reported.
Cookie banners and chat widgets are hidden from screenshots again
Since June 16 the step that hides cookie banners, chat launchers and popups before a page is captured was not taking effect, so they sat in screenshots as part of the page. They are hidden again, now only where the capture recognises the tool behind them: consent tools, chat widgets, popup builders, Google ad units and accessibility launchers.
- Anything built into the site itself stays in the screenshot: a hand-built cookie bar or popup, a theme's announcement bar, a floating WhatsApp or quote button. The capture cannot tell these from real content, and hiding real content is the worse mistake.
- When a popup locked the page from scrolling, the sections further down could be captured empty. The page is now unlocked before it is captured.
- The next scan of a site with one of these may report a visual change once, because the banner is in the previous screenshot and not in the new one. Whether that sends an alert depends on the alert rules you have set.
Content Health alerts no longer repeat problems you were already told about
After a check that did not get through a page, because it was cut short, blocked or rate-limited, or because only its mobile check ran, the next alert could announce that page's long-broken links and images as new. Each page is now compared with the last check that actually read it, however long ago that was.
- A link that broke on a page whose previous check had not run was never announced: that day there was nothing to compare it with, and the day after it counted as old. It is now announced, once.
- When an alert still has nothing to compare with, it leaves out what you were already told about, says how many it left out, and adds the total to its subject line.
Content Health in reports is now a short checklist
In the report email, on the shared report link and in the report preview, Content Health is now three rows, Links, Images and Secure connections, each with a status icon, how many were checked and a short result. Your client no longer sees web addresses, technical failure reasons or a list of items that couldn't be verified.
- Each row compares with the last period in words, such as "down from 3", "up from 1" or "none last period", instead of an arrow beside one total.
- When a period has no usable scan, the section is left out of the report instead of showing a grey "Not checked this period" card.
- On a phone, the report email stacks the section into one column.
- Reports you shared before today also show the checklist, without their lists of addresses and without a checked count.
A challenge page from Amazon's firewall is no longer mistaken for the site
When Amazon's firewall, AWS WAF, answers a check with a challenge page instead of the site, the status code that comes with it says nothing about the site, yet Content Health and Uptime read it as the site's own answer. Both now read it as "Couldn't verify".
Links to JavaScript-only pages move from Broken to Couldn't verify
A JavaScript-only page can answer with an error code even though it loads in a browser, and a link to one was counted as broken in Content Health, in your client's report and in alert emails. From each site's next daily scan it reads "Couldn't verify", labelled "Needs JavaScript".
The Content Health comparison in reports no longer runs into one word
The change beside the count of problems, such as "↓ -2 vs last period", was squeezed into one word, "↓-2vslastperiod", in the report email and on the shared report link. It now sits on its own line under the count.
Each monitor now has one page listing every site
Visual Changes, Page Scores, Content Health, Uptime, Renewals and Pages each list every site you monitor, worst first, and a row opens that site's detail in a side panel, or its screenshot history for Visual Changes. The site picker is gone, and your days of monitoring left sit where it was.
- In the sidebar, each monitor and Pages show their counts, red for problems and amber for warnings.
- Sites are added from Portfolio, and a site's own page opens from its row there or from an alert email.
- A domain you monitor for two clients opens that client's copy from Portfolio and from alert emails, and asks which client when a link does not say. It could open the other client's copy before.
Page Scores shows mobile and desktop separately, not averaged
The Page Scores list and each site's detail show one device at a time, mobile first, with a switch to desktop, where the page used to lead with scores averaged across both. A site that scores lower on mobile reads lower here than it did.
- The report your client receives is unchanged and still scores both devices together, so its figures can differ from those on Page Scores.
- A page with no score in the last seven days is listed as "Not scored yet". It used to be counted as "Healthy".
A site no longer ends up checking fewer pages than it should
Two faults could leave a site with pages missing from monitoring.
- A page that answered "too many requests" while the site's pages were being looked up was taken off the list as though it had gone. A rate limit means "not now", so the page stays.
- When finding a new site's pages failed outright, the site was left with no pages to check, though it was still charged. The homepage is always on the list now, so its scans check at least that.
Portfolio opens a monitor's detail without leaving the list
The Mobile, Desktop, Assets, Uptime, SSL and Domain cells on Portfolio open that site's detail in place, and Back returns you to the same spot in the list. The Assets cell also shows problems and insecure items side by side, such as 4 + 23, so it adds up to the count on Content Health.
The Team page covers your whole agency
Every open invitation shows on the Team page and can be cancelled there. One sent while another client's site was selected did not show, and cancelling an invitation could say it was done while it stayed open.
- An invitation always adds a manager. To make someone an owner, change their role on the Team page once they have joined.
- The invitation email names your agency. It used to name whichever client was selected, which is not what the person joins.
- Someone who accepts an invitation goes straight into the dashboard instead of a "Select a site" screen.
Reports can be sent from your own domain
Publish five DNS records for a domain you own and your reports leave from an address on that domain, signed by it, with no "via siteletter.com" line under your agency name. Setup sits in Settings under Report preferences: each record is listed with its own status, there is a Check now button, and you can cancel the setup, or stop sending from the domain later, at any time.
- On a verified domain the report body drops the SiteLetter logo and wordmark, whether or not you have set your own branding.
- A client's reply reaches your sending address when you have not filled in a reply-to of your own, instead of the address the account was opened with.
- This is not full white-label. Alert emails still come from SiteLetter, and a shared report link is still a siteletter.com address.
Page Scores alerts now say whether it was mobile or desktop
Every monitored page is scored twice, once on mobile and once on desktop, and an alert that named neither made a desktop alert and a later mobile alert read as the same message sent twice. The device is now named beside the score in the email, in Slack and in alert history: "performance (Mobile)" rather than "performance".
- The two devices are judged separately. A mobile score sitting still below your threshold no longer sends a fresh alert every day because the desktop score moved, and a real mobile drop is no longer taken for one you had already been told about.
- A day the audit itself failed no longer counts as a score you were shown, so the alert that used to repeat the day after one has stopped.
Visual history now shows the capture a change was actually measured against
The "Previous" image beside a change was not always the one the change was measured against: a page is compared with the last good capture, normally the previous day's, and history showed the capture immediately before whether or not that was it. It now shows the one that was really used, dated, with a line naming why when the two differ.
- Side by side, the two images scroll, zoom and pan together and stay lined up.
- A comparison that could not load no longer sits on a spinner that never ends.
A guide on what belongs in a maintenance plan
New in Guides: what a care plan covers and what to leave out, with a scope sheet you can work through section by section, and how to write the scope into the agreement.
A domain with no published expiry date no longer reads as expiring today
Some country registries, .de, .nl, .eu, .at and .au among them, do not publish domain expiry dates at all, and the site overview was filling that gap with a large 0 above "days remaining". Those sites now read "Not published", with a sentence naming the registry and pointing at the registrar, which is where the renewal date actually lives.
- A lookup that genuinely failed now says what failed, and that the next daily scan will try again. A registry that can never return a date says so instead, so you are not left waiting on a check that cannot succeed.
- Where the registry publishes a registration date, the card shows that in place of an empty Expires row, and the progress bar with nothing to count down has gone.
- This wording is on the dashboard today. A report you share with a client still shows "Couldn't verify" and a dash for these domains, which was never wrong, only less than the dashboard now tells you.
- Czech .cz and Brazilian .br domains are not in this group. Those registries do publish a date, in a format the check cannot read today, so those sites still say the next scan will try again.
- Each site picks up the new wording at its next daily scan.
Working links no longer read as broken on firewall-protected sites
Some sites, government and enterprise hosts especially, turn away the lightweight request used to test a link and answer with an error, and that error read as a dead link on the dashboard, in emailed reports, in PDF exports and on shared report links. Anything about to be called broken is now requested again in full and that second answer is the one reported, so on an affected site the broken count drops and Content Health can turn from red or amber back to green.
Each site has its own panel for its five monitors
Visual Changes, Page Scores, Content Health, Uptime and Renewals are switched on and off one site at a time, from a panel on the site itself. It states what each switch does to the money before you save, and if the balance will not cover everything you ticked it turns on what it can and names the rest rather than refusing the whole save.
Page monitors you switch on separately
What was one Core monitoring line is now Visual Changes, Page Scores and Content Health, each switched on separately. Page Scores and Content Health run on the daily page visit Visual Changes makes, so they need Visual Changes on.
Report history and alert history now cover every client at once
Both pages have moved out of the single-client view into the agency section of the sidebar, and list everything sent across your whole portfolio. Filter by client and by site, and the filter stays in the address bar, so a filtered view can be bookmarked or sent to someone.
Visual checks stay honest when a page stays broken
Two fixes to how a page is compared against its previous capture.
- A page found broken used to become the new reference, so the next check compared broken against broken, found no difference, and went quiet about damage that was still there. Damaged captures are no longer used as the reference.
- When the reference image had aged out of storage, the page was treated as never scanned, which reads as no change. It now falls back to an older capture, and if there isn't one the page is marked unverified rather than clear.
The same domain under two clients reads as two sites
If you monitored one domain for two different clients, the portfolio built both rows from the same record, so pausing one silenced the other. Each client's row now stands on its own.
Shared report links now show the full report
When you share a client's report, the link opens the complete branded report in one page: Performance, uptime, visual changes, broken links, SSL, and domain. The shared page stays private and isn't indexed by search engines.
Mixed content and insecure links now show up on content health.
Mixed content flags http:// scripts, stylesheets, iframes and images loaded by an https page (browsers block or warn on these). Insecure links lists http:// anchor URLs. Both show as separate sections on content health, distinct from broken resources.