Greasy Fork is available in English.

Google Cached Links

Adds a Cached link next to the search results on Google

// ==UserScript==
// @name         Google Cached Links
// @namespace    https://greasyfork.org/users/710133
// @version      1.0
// @description  Adds a Cached link next to the search results on Google
// @author       tomcatadam
// @include      http*://www.google.*/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Get all search result divs on the page
    const searchResultDivs = document.querySelectorAll('div.MjjYud');

    // Iterate over each search result div and add a Cached link
    searchResultDivs.forEach(searchResultDiv => {
        // Get the link inside the search result div
        const link = searchResultDiv.querySelector('a');

        if (link !== null && link !== undefined) {
            // Get the URL of the link
            const url = link.href;

            // Create the Cached link element
            const cachedLink = document.createElement('a');
            cachedLink.href = `https://webcache.googleusercontent.com/search?q=cache:${url}`;
            cachedLink.textContent = 'Cached';
            cachedLink.style.fontSize = '12px';
            cachedLink.style.color = '#70757a';
            cachedLink.style.marginLeft = '10px';

            // Find the <span> element with jsname="czHhOd"
            const span = searchResultDiv.querySelector('span[jsname="czHhOd"]');

            if (span !== null && span !== undefined) {
                // This version will insert the Cached link before the vertical elipses.
                // span.parentNode.insertBefore(cachedLink, span);

                // Add some horizontal space between the Cached link element and the <span> element
                cachedLink.style.marginLeft = '20px';

                // Insert the Cached link element after the <span> element
                span.parentNode.insertBefore(cachedLink, span.nextSibling);
            }
        }
    });
})();