Fix Custom Fonts Not Loading on Shopify for All Devices

Published on Aug 16, 2024

By Sophia Rodriguez

#Shopify#Web Development#Custom Fonts
Photo Of Person Using Laptop For Graphic Designs

Custom fonts can significantly enhance the visual appeal of your Shopify store, but sometimes they don’t load correctly across all browsers and devices. This issue is particularly common with Safari and mobile browsers. In this comprehensive guide, we’ll explore various methods to ensure your custom fonts display correctly on all platforms, focusing on solutions for Safari and mobile devices.

Understanding the Problem

Why Custom Fonts Fail to Load

Custom fonts may fail to load due to several reasons:

  1. Incorrect font file formats
  2. Improper CSS implementation
  3. Browser compatibility issues
  4. Caching problems

Common Symptoms

When custom fonts don’t load correctly, you might notice:

  • Fallback fonts being displayed instead of your chosen custom font
  • Inconsistent font appearance across different browsers and devices
  • Fonts loading on desktop but not on mobile devices

The Most Effective Solution

Using Direct URL References

The most reliable method to ensure custom fonts load correctly across all browsers and devices is to use direct URL references in your CSS. This approach bypasses potential issues with Shopify’s asset handling and provides a consistent experience across platforms.

Here’s how to implement this solution:

  1. Upload your font files to Shopify’s file section.
  2. Obtain the direct URLs for each font file.
  3. Use the following CSS structure in your theme’s stylesheet:
@font-face {
  font-family: 'Your Custom Font';
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: url('YourCustomFontFileURL.woff2') format('woff2'),
       url('YourCustomFontFileURL.woff') format('woff');
}

.your-target-element {
  font-family: 'Your Custom Font', sans-serif;
}

Replace ‘YourCustomFontFileURL’ with the actual URLs of your font files, and adjust the font-family name and target elements as needed.

Why This Method Works

Using direct URLs ensures that browsers can access the font files without relying on Shopify’s liquid templating language. This approach has proven effective for many users, especially with newer Shopify themes.

Alternative Methods

Using Shopify’s Asset URL Function

While not as universally effective as the direct URL method, some users have found success with Shopify’s asset_url function:

@font-face {
  font-family: 'Your Custom Font';
  src: url({{ 'your-font.woff' | asset_url }}) format('woff'),
       url({{ 'your-font.woff2' | asset_url }}) format('woff2');
  font-weight: normal;
  font-style: normal;
}

Utilizing Font Management Apps

For those who prefer a more hands-off approach, Shopify offers font management apps like “FontPicker — Easy Google Fonts”. These apps allow you to upload custom font files and manage them without diving into code.

Best Practices for Custom Font Implementation

File Format Considerations

To ensure maximum compatibility, include multiple font file formats:

  • WOFF2 (Web Open Font Format 2)
  • WOFF (Web Open Font Format)
  • TTF (TrueType Font)
  • EOT (Embedded OpenType)

Performance Optimization

Consider these tips to optimize font loading:

  1. Use font-display: swap; to prevent FOIT (Flash of Invisible Text).
  2. Preload critical fonts using the “ tag.
  3. Subset fonts to include only necessary characters.

Troubleshooting Tips

If you’re still experiencing issues:

  1. Clear browser caches and test in incognito mode.
  2. Verify that font files are correctly uploaded and accessible.
  3. Check for any conflicting CSS rules in your theme.

Advanced Techniques

Using JavaScript for Font Loading

For more control over font loading, consider using the Font Loading API:

document.fonts.ready.then(function() {
  // Font is loaded, apply styles or trigger animations
});

Fallback Strategies

Implement a robust fallback strategy to ensure a consistent user experience:

body {
  font-family: 'Your Custom Font', Arial, sans-serif;
}

This ensures that if your custom font fails to load, the browser will use Arial or a default sans-serif font.

By following these guidelines and implementing the direct URL method, you should be able to resolve issues with custom fonts not loading in Safari or on mobile devices. Remember to test your Shopify store across various browsers and devices to ensure a consistent and visually appealing experience for all your customers.

Take Our Quick Quiz:

Which primary product image do you think has the highest conversion rate?