diff --git a/src/main/java/fr/osug/doi/ProcessUrlPipeline.java b/src/main/java/fr/osug/doi/ProcessUrlPipeline.java
index 31051bf5dc0d3fa8e2f4688b5f4f020b90237f58..91c1cc3d86d22bd834b83512ef79b98437e823ae 100644
--- a/src/main/java/fr/osug/doi/ProcessUrlPipeline.java
+++ b/src/main/java/fr/osug/doi/ProcessUrlPipeline.java
@@ -91,13 +91,13 @@ public final class ProcessUrlPipeline extends AbstractPipeline<PipelineCommonDat
             if (dataAccessUrl == null) {
                 doiData.addError("Missing data access url");
             } else {
-                checkUrl(doiData, dataAccessUrl);
+                checkUrl(doiData, dataAccessUrl, true);
             }
 
             // Get external Landing page URL:
             final String landingPageExtUrl = projectConfig.getUrlLandingPage(doiSuffix);
             if (landingPageExtUrl != null) {
-                checkUrl(doiData, landingPageExtUrl);
+                checkUrl(doiData, landingPageExtUrl, false);
                 logger.debug("landingPageUrl: {}", landingPageExtUrl);
             }
 
@@ -113,12 +113,12 @@ public final class ProcessUrlPipeline extends AbstractPipeline<PipelineCommonDat
         logger.info("processUrls: done");
     }
 
-    private void checkUrl(final PipelineCommonDoiData doiData, final String url) {
+    private void checkUrl(final PipelineCommonDoiData doiData, final String url, final boolean binary) {
         logger.debug("checkUrl: {}", url);
 
         Integer check = checkUrlCache.get(url);
         if (check == null) {
-            final String doc = doiConfig.getUrlChecker().getResource(url);
+            final String doc = doiConfig.getUrlChecker().getResource(url, binary);
             check = checkDocument(doc);
             checkUrlCache.put(url, check);
         }
diff --git a/src/main/java/fr/osug/doi/service/UrlChecker.java b/src/main/java/fr/osug/doi/service/UrlChecker.java
index 02342def34108fa817299c7431fed73280806a61..aae62b21695f178a28f66f3557a38b2d62a310ab 100644
--- a/src/main/java/fr/osug/doi/service/UrlChecker.java
+++ b/src/main/java/fr/osug/doi/service/UrlChecker.java
@@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.boot.web.client.RestTemplateBuilder;
+import org.springframework.http.HttpHeaders;
 import org.springframework.web.client.RestClientException;
 
 /**
@@ -38,16 +39,30 @@ public class UrlChecker {
         200 OK - operation successful
     
         @param url resource to load
-        @return 
+        @param headOnly true to only retrieve content-type
+        @return resource as string or Content-Type header if headOnly is true
      */
-    public String getResource(final String url) {
+    public String getResource(final String url, final boolean headOnly) {
         // Note: url must not be encoded (%)
         if (url.contains("%")) {
             logger.info("Url is encoded (may cause problem with HTTP request) : {}", url);
         }
         String response = null;
         try {
-            response = this.restTemplate.getForObject(url, String.class);
+            logger.debug("getResource: {}", url);
+
+            if (headOnly) {
+                final HttpHeaders headers = this.restTemplate.headForHeaders(url);
+
+                if (headers != null) {
+                    if (logger.isDebugEnabled()) {
+                        logger.debug("headers: {}", headers.values());
+                    }
+                    response = headers.getContentType().toString();
+                }
+            } else {
+                response = this.restTemplate.getForObject(url, String.class);
+            }
         } catch (RestClientException rce) {
             logger.error("getResource: failed", rce);
         }