# Website 2027 Breakage Audit: Certs, Shopify, PayPal, Azure (`donrulezz/website-2027-breakage-audit`) Actor

One audit per website for every dated forced change of 2026-2027: Mozilla root removals, 100-day certificates, Shopify script tags, PayPal WPS buttons, Azure classic CDN, Drupal 10 and PHP end of life, Chrome XSLT, dead Facebook/Maps embeds. Fixes per site.

- **URL**: https://apify.com/donrulezz/website-2027-breakage-audit.md
- **Developed by:** [Ashish Agarwal](https://apify.com/donrulezz) (community)
- **Categories:** Developer tools, SEO tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 site auditeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Website 2027 Breakage Audit: Certs, Shopify, PayPal, Azure

2026–2027 is full of **dated, forced changes** that quietly break websites. This Actor audits each site against all the
ones we track and returns **one report per site** with dated findings and the fix for each — made for agencies, MSPs and
IT teams who look after many sites.

| Check | Deadline | What breaks | Source |
|---|---|---|---|
| Drupal 10 end of life | 9 Dec 2026 | no more security releases | [drupal.org schedule](https://www.drupal.org/about/core/policies/core-release-cycles/schedule) |
| PHP 8.2 end of life (from `X-Powered-By`) | 31 Dec 2026 | no more security fixes | [php.net](https://www.php.net/supported-versions.php) |
| PayPal WPS Buy Now / Add to Cart buttons | any time after 1 Jan 2027 | old payment buttons stop | PayPal developer WPS deprecation page |
| Shopify script tags | 1 Mar 2027 | apps vanish from the storefront | [shopify.dev changelog](https://shopify.dev/changelog/online-store-script-tags-deprecation) |
| Azure Front Door (classic) / CDN classic | 31 Mar / 30 Sep 2027 | classic endpoints may stop from 1 Apr 2028 | [Microsoft Learn](https://learn.microsoft.com/azure/frontdoor/migration-faq) |
| Mozilla root removals (Go Daddy G2, USERTrust, COMODO, GlobalSign R3…) | 15 Apr 2027 | HTTPS fails in Firefox, curl, Python, Node.js | [Mozilla](https://wiki.mozilla.org/CA/Root_CA_Lifecycles) |
| Shopify legacy customer accounts | sunset date to be announced | login flow | Shopify changelog, 26 Feb 2026 |
| Google Merchant Center 500×500 product images (Shopify stores, from products.json) | 31 Jan 2027 | small images disapproved / auto-upscaled | [Merchant Center help](https://support.google.com/merchants/answer/16989427) |
| Dead or dangerous scripts: polyfill.io and its sister CDNs (hijacked June 2024), Universal Analytics (stopped 1 Jul 2023), Google Optimize (sunset 30 Sep 2023) | already past | security risk / no data / slower pages | Cloudflare, Censys, Google |
| Facebook Like button / Comments plugin | 10 Feb 2026 | rendered as an invisible 0×0 box | [Meta for Developers](https://developers.facebook.com/blog/post/2025/11/10/platform-evolution-facebook-social-plugins-to-be-discontinued-february-2026/) |
| Google Maps KmlLayer, Heatmap Layer, Drawing library | Apr / May 2026 | map features no longer available | [Google Maps deprecations](https://developers.google.com/maps/deprecations) |
| Firebase Dynamic Links (page.link), Skype buttons, Stamen tiles, Instafeed | 2023–2025 | dead links, buttons and grey maps | Firebase, Microsoft, Stadia Maps, Meta |
| Maps that no longer load: keyless Google Maps, retired Google Maps v2 / Fusion Tables, Azure Maps v1, Leaflet's old CDN, Mapbox v3 tiles | various, already past | grey or "for development purposes only" maps | Google, Microsoft (+ hosts checked) |
| Dead payment / consent / media embeds: old Square payment form, old Quantcast consent script, Azure Media Player | already past | checkout, consent banner or video broken | Microsoft (+ hosts checked) |
| Dead social and comment widgets: AddThis, Gfycat, Facebook Customer Chat, Livefyre, YUI CDN | 2022–2024 | blank widgets | hosts checked 27 Oct 2026 |
| HTTPS certificate bought and installed by hand (long-lived OV/EV/DV, not managed) | **15 Mar 2027** (100-day maximum) | about 4 manual installs a year | [CA/B Baseline Requirements](https://github.com/cabforum/servercert/blob/main/docs/BR.md) |
| Browser-side XSLT (`XSLTProcessor`, XSL-styled XML pages) | **17 Nov 2026** (Chrome 158) | content rendered by XSLT stops showing in Chrome | [Chrome for Developers](https://developer.chrome.com/docs/web-platform/deprecating-xslt) |
| Zoom Meeting SDK for Web below **4.0.0** (version shown; checked against Zoom's minimum-version table) | **7 Nov 2026**, then every quarter | attendees can't join embedded meetings | [Zoom KB0061130](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0061130) |
| Twitch embeds without `parent=` (or not listing this host) | live requirement | playback error instead of the stream | [Twitch](https://dev.twitch.tv/docs/embed/) |
| YouTube embeds on pages with `Referrer-Policy: no-referrer` / `same-origin` | live requirement (updated 15 Oct 2026) | player may show an error or lose features | [YouTube](https://developers.google.com/youtube/terms/required-minimum-functionality) |
| Bing Maps V8 web control | free keys already retired; Enterprise **30 Jun 2028** | credentials error on the map | [Microsoft Learn](https://learn.microsoft.com/en-us/bingmaps/getting-started/) |

Each site's **home page**, its **HTTPS certificate chain** (real path validation against today's and the post-April-2027
Mozilla root store) and its **DNS** (CNAME chain, and the hosts its page assets load from) are checked. Public data only.

### Input

```json
{ "siteUrls": ["https://www.example.com", "shop.example.org"] }
```

Or `siteListUrl`: a CSV/TXT or published Google Sheets CSV link with your client list.

### Output (one item per site)

```json
{
  "url": "https://www.godaddy.com",
  "risk": "high",
  "riskScore": 3,
  "nextDeadline": "2027-04-15",
  "platform": [],
  "findings": [
    {"check": "certificate", "severity": "high", "deadline": "2027-04-15",
     "title": "HTTPS chain only reaches 'Go Daddy Root Certificate Authority - G2', removed by Mozilla on 15 Apr 2027",
     "action": "Ask your CA for a chain to one of its newer roots..."}
  ]
}
```

`risk` is `high`, `medium`, `low` (info only), `none` or `unreachable` (not charged). PayPal buttons are checked on the home page only; for a
whole-site crawl use the dedicated PayPal Legacy Button Finder.

### Pricing

Pay per site audited (all checks included). Sites that can't be reached are free.

### More tools from the same author

- [Shopify Image Size Checker](https://apify.com/donrulezz/shopify-image-size-checker): every product image under the 500x500 Merchant Center minimum (31 January 2027).
- [Google Merchant Center Q\&A Writer](https://apify.com/donrulezz/merchant-center-qa-writer): write the new question_and_answer attribute for every product, as a ready supplemental feed.
- [AI Visibility Monitor](https://apify.com/donrulezz/ai-answer-engine-monitor): does ChatGPT, Perplexity, Claude or Gemini recommend your brand.
- [Shopify Script Tag Shutoff Scanner](https://apify.com/donrulezz/shopify-script-tag-scanner): which apps on a Shopify store stop on 1 March 2027, and legacy customer accounts.
- [PayPal Legacy Button Finder](https://apify.com/donrulezz/paypal-legacy-button-finder): every old PayPal Buy Now / Add to Cart button before PayPal retires them.
- [SSL Root Certificate Distrust Checker](https://apify.com/donrulezz/root-certificate-distrust-checker): which sites, APIs and mail servers break when Mozilla removes 19 roots on 15 April 2027.
- [Azure Classic CDN & Front Door Retirement Checker](https://apify.com/donrulezz/azure-classic-cdn-front-door-checker): hostnames and page assets still on Front Door (classic) or azureedge.net.
- [Drupal Version & End-of-Life Checker](https://apify.com/donrulezz/drupal-version-eol-checker): which sites run Drupal 10 (end of life 9 December 2026) or older.

*Product names (Mozilla, Shopify, PayPal, Microsoft Azure, Drupal, PHP) are trademarks of their owners. This Actor is independent and not affiliated with any of them.*

# Actor input Schema

## `siteUrls` (type: `array`):

Sites to audit, one per line (https://www.example.com or example.com). The home page, its HTTPS certificate chain and DNS are checked.

## `siteListUrl` (type: `string`):

A CSV/TXT file or a published Google Sheets CSV link with your client sites; any column holding a domain or URL is used.

## `maxConcurrency` (type: `integer`):

How many sites are audited at the same time.

## Actor input object example

```json
{
  "siteUrls": [
    "https://www.example.com",
    "shop.example.org"
  ],
  "maxConcurrency": 5
}
```

# Actor output Schema

## `overview` (type: `string`):

Risk, next deadline and findings per site.

## `summary` (type: `string`):

Sites per risk level.

## `results` (type: `string`):

Full reports as JSON.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "siteUrls": [
        "https://www.godaddy.com",
        "https://www.brooklinen.com",
        "https://www.nbcuniversal.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("donrulezz/website-2027-breakage-audit").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "siteUrls": [
        "https://www.godaddy.com",
        "https://www.brooklinen.com",
        "https://www.nbcuniversal.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("donrulezz/website-2027-breakage-audit").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "siteUrls": [
    "https://www.godaddy.com",
    "https://www.brooklinen.com",
    "https://www.nbcuniversal.com"
  ]
}' |
apify call donrulezz/website-2027-breakage-audit --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,donrulezz/website-2027-breakage-audit"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hPO1jP7CzJs6NRJhC/builds/SecFb2oo1U9L6XkaW/openapi.json
