ScreenshotNeo

BlogHow-to

How to Generate Website Thumbnails for Indian School Websites in Google Sheets

Turn a list of Indian school website URLs into visual previews in Google Sheets. Learn how to create screenshots, display them with IMAGE, or insert them with Apps Script.

By the ScreenshotNeo team4 October 20267 min read

Direct answer: Google Sheets can display a website thumbnail after you have created a screenshot image. It cannot turn a normal school homepage URL into a screenshot by itself. Capture each page with a browser or screenshot service, then show an accessible image URL with IMAGE or insert the image with Apps Script.

This workflow works for Indian school websites just as it does for other public sites. Use each school’s canonical public website address, and try a few rows first: sites can redirect, load differently, or prevent automated capture.

1. Prepare your Google Sheet

Keep school names, target URLs, screenshot image URLs, and thumbnails in separate columns. That makes it easier to see whether a problem comes from the school address, the screenshot step, or the image display step.

Column Contents Example
A School name Example Public School
B Canonical website URL https://school.example/
C Direct screenshot image URL, if hosted A URL that returns an image
D Thumbnail Formula or inserted image
  1. Add the full URL, including https://, for each school.
  2. Check that the URL opens the intended public page and note any redirect to a canonical domain.
  3. Work with a small sample before processing the full list. Confirm the capture, image access, and thumbnail size.

For India-focused directories, schools may use different domains and site configurations. There is no special Sheets feature for Indian domains; the relevant question is whether your capture method can reach and render the chosen page.

2. Create an image of each website

A school homepage URL is an HTML webpage, while Sheets’ IMAGE function expects an image URL. The screenshot must be rendered first. For a handful of sites, you can capture pages manually in a browser and save the image somewhere Sheets can access. For a repeated workflow, a screenshot-rendering service can accept a page URL and return an image.

A screenshot service is optional. Before choosing one, check its current documentation and terms for output format, viewport and full-page support, request limits, authentication, image URL accessibility, retention and privacy, and pricing. Vendor integration pages describe their own products; their claims do not establish that a given service will work with every school site or remain available on the same terms.

In particular, do not paste a normal school homepage URL into IMAGE and expect a screenshot. Do not assume that a screenshot API’s endpoint can be used directly as a cell formula: authentication and response format differ by provider. A URL that requires an authorization header may need an intermediary or a different insertion workflow.

3. Display a hosted screenshot with IMAGE

If column C contains a direct image URL that Sheets can fetch, enter this in D2:

=IMAGE(C2, 1)

Fill the formula down for the other rows. Google documents four sizing modes for IMAGE:

Mode Behavior When to use it
1 Fits the image within the cell while preserving its aspect ratio. A compact preview that should not be distorted.
2 Stretches the image to fill the cell. Only when filling the exact cell dimensions matters more than preserving proportions.
3 Displays the image at its original size. When the source dimensions are already appropriate for the sheet.
4 Uses custom height and width, in pixels. When thumbnails need consistent dimensions.

For custom dimensions, use the documented form =IMAGE(C2, 4, 120, 200), where the last two arguments are height and width in pixels. Adjust row height and column width as needed: a correct formula can still look like a tiny or cropped preview if the grid is too small.

See Google’s image and IMAGE function documentation for the current Sheets behavior.

4. Insert images with Apps Script

Apps Script is useful when you want a script to place image objects in a sheet rather than formulas in cells. The URL insertion method expects a publicly accessible image URL; it does not browse a webpage and turn it into a screenshot.

function insertSchoolThumbnails() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const firstDataRow = 2;
  const urlColumn = 3; // Column C: direct image URLs
  const imageColumn = 4; // Column D: inserted images
  const lastRow = sheet.getLastRow();

  for (let row = firstDataRow; row <= lastRow; row++) {
    const imageUrl = sheet.getRange(row, urlColumn).getDisplayValue().trim();
    if (!imageUrl) continue;
    sheet.insertImage(imageUrl, imageColumn, row);
  }
}

To use it, open the spreadsheet’s Apps Script editor, add the function, and run it. Review the authorization prompt and allow the requested spreadsheet access if appropriate. The example assumes column C already contains direct public image URLs. Running it again inserts another set of images, so avoid rerunning it without first removing the prior inserted objects.

If your script already has image bytes, the Apps Script blob insertion method can place them in the sheet. Google’s documented insertImage(blob, ...) method has a maximum supported blob size of 2 MB. See the official Spreadsheet and Sheet references for method details and authorization requirements.

5. Choose a workflow for your list

Approach Best fit Key consideration
Manual browser capture + hosted images + IMAGE A short list or occasional updates You handle capture and hosting for each screenshot.
Screenshot service + IMAGE Repeated capture where the service provides image URLs Sheets can access Check authentication and whether the response is a direct image or requires downloading first.
Screenshot service + Apps Script A scripted flow that fetches or inserts image content Follow the provider’s current authentication guidance; do not put secret keys in visible sheet cells.

For a small number of sites, manual capture may be simplest. For a larger or frequently refreshed list, compare services on current capture limits, output format, viewport controls, authentication, retention and privacy, pricing, and compatibility with your chosen Sheets workflow. Verify these details with the provider before building around them.

6. Troubleshooting

Symptom Likely cause What to check
IMAGE shows an error or no image The cell contains a webpage URL, a non-image response, or an image URL Sheets cannot access. Open the image URL directly and confirm it returns an image without a login, header, or interactive step.
The thumbnail is too small or distorted The cell dimensions or sizing mode do not suit the source image. Try mode 1 to preserve proportions, or mode 4 with chosen dimensions; adjust row height and column width.
The screenshot shows a redirect page, denial, or incomplete site The target redirects, blocks automated access, or depends on scripts or resources that did not load. Try the canonical public URL, check the page manually, and review the capture method’s wait and rendering options.
Apps Script reports an image URL problem The URL is not publicly accessible or does not resolve to an image. Test the image URL outside the sheet and confirm it does not require credentials unavailable to the script.
Blob insertion fails for a large image The blob exceeds the documented 2 MB maximum for that insertion method. Use a smaller image or a public image URL insertion route.
Script creates duplicate images The insertion function was run more than once. Remove old inserted images before rerunning, or adapt the script to track and update its existing output.
Only some school sites fail Those sites may be unavailable, use unusual redirects, require interaction, or block the chosen capture method. Inspect each failed URL and handle exceptions per row rather than treating all sites as equivalent.

7. Performance, reliability, and cost

  • Start small: check a handful of representative sites before creating a large batch. This catches bad URLs, inaccessible images, and unsuitable dimensions early.
  • Keep the sheet responsive: avoid recalculating or inserting more screenshots than the sheet needs. For a directory view, use modest thumbnail dimensions and refresh only when needed.
  • Expect variation: school websites can change, be temporarily unavailable, or render differently depending on network access and capture settings. Keep the source URL alongside each preview so a thumbnail is not mistaken for a permanent record of the page.
  • Check image access and data handling: a hosted screenshot must remain accessible to the spreadsheet. Review the screenshot provider’s current retention and privacy terms, especially if pages are not public.
  • Budget by workflow: manual capture costs time; a vendor may charge for rendering or storage under its current plan. Check current terms rather than relying on old examples or vendor integration summaries.

8. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. It can return a screenshot image from one GET request, so the capture step does not require you to set up a browser locally. Use the resulting image in Sheets according to the API response and current ScreenshotNeo documentation.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Replace the example target with a school’s public website URL. The saved file is a local image; for IMAGE, you need an image URL that Sheets can access. You can use Apps Script or another suitable hosting step to make the image available, or insert image bytes where appropriate. The API also supports PNG, JPEG, and PDF output.

With ScreenshotNeo, cookie and consent banners are accepted like a visitor and more than 60 known consent platforms, newsletter popups, and chat widgets are removed before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf tools for AI agents using Claude, Cursor, or another MCP client. The Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots.

Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.

9. FAQ

Can Sheets take a screenshot from a school URL with a formula alone?

No. First create or obtain an image of the page, then display that image in Sheets.

Can I use a school website that is not public?

Only if your capture and image workflow can access it with the required authorization. Check the site’s access rules and the service’s security and retention terms before sending it for capture.

Will every school homepage look the same in the thumbnail?

No. Page design, load behavior, redirects, and capture settings affect the result. Use a consistent viewport and check representative sites.

Does inserting an image with Apps Script make it refresh automatically?

The example inserts image objects when it runs. It does not schedule itself or refresh existing images; scheduling and update logic require additional script configuration.

References: Google Sheets: Add an image to a spreadsheet; Google Apps Script Spreadsheet and Sheet references.