Mounting theoretical evidence suggests that demographic stochasticity, environmental heterogeneity and biased movement of organisms individually affect the dynamics of biological invasions and range expansions. Studies of species spread in heterogeneous landscapes have traditionally characterized invasion velocities as functions of the mean resource density throughout the landscape, thus neglecting higher-order moments of the spatial resource distribution. Here, we show theoretically that different spatial arrangements of resources lead to different spread velocities even if the mean resource density throughout the landscape is kept constant. Specifically, we find that increasing the resource autocorrelation length causes a reduction in the speed of species spread. The model shows that demographic stochasticity plays a key role in the slowdown, which is strengthened when individuals can actively move towards resources. We then experimentally corroborated the theoretically predicted reduction in propagation speed in microcosm experiments with the protist Euglena gracilis by comparing spread in landscapes with different resource autocorrelation lengths. Our work identifies the resource autocorrelation length as a key modulator and a simple measure of landscape susceptibility to biological invasions, which needs to be considered for predicting invasion dynamics within naturally heterogeneous environmental corridors.

#### Growth curves data

Density estimates of Euglena gracilis cultures grown in the presence of light (cell culture flasks 1-5) and in the absence of it (cell culture flasks A-E).

growth_data.xlsx

#### Density profiles, small autocorrelation treatment

This is a Mathematica list. Each element of this list contains the set of 11 temporal measurements of a single experimental replicate. Each element of this list contains algal density profiles measured in the presence of the LED sequence in the data file LEDs_small_cL.m. Each data pair contains the x coordinate of the algal density measurement (first element of the pair, expressed in cm) and the number of individuals in that measurement (second element).

profiles_small_cL.m

#### Density profiles, large autocorrelation treatment

This is a Mathematica list. Each element of this list contains the set of 11 temporal measurements of a single experimental replicate. Each element of this list contains algal density profiles measured in the presence of the LED sequence in the data file LEDs_large_cL.m. Each data pair contains the x coordinate of the algal density measurement (first element of the pair, expressed in cm) and the number of individuals in that measurement (second element).

profiles_large_cL.m

#### LEDs on/off sequences, small autocorrelation treatment

This is a Mathematica list. Each element of this list contains the LED on/off sequence for each experimental replicate within the small autocorrelation length treatment. Indicated are the position of the LED in cm from the origin (first element of each data pair) and the LED on/off value (0 or 1, respectively).

LEDs_small_cL.m

#### LEDs on/off sequences, large autocorrelation treatment

This is a Mathematica list. Each element of this list contains the LED on/off sequence for each experimental replicate within the large autocorrelation length treatment. Indicated are the position of the LED in cm from the origin (first element of each data pair) and the LED on/off value (0 or 1, respectively).

LEDs_large_cL.m

#### Profile measurements times, small autocorrelation treatment

This is a Mathematica list. Each element of the list contains the times (in days) at which the algal density profiles were measured.

profile_measurements_times_small_cL.m

#### Mean front position and standard error, small autocorrelation length treatment

This is a Mathematica list. It contains five elements, each of which corresponds to the mean front positions measured at a different threshold density, respectively: 45, 60, 75, 90 and 105 1/cm. The mean is computed across the replicates belonging to the small autocorrelation length treatment. Each element of the list contains a list of triplets: the first element of each pair is the mean time of measurement (in days), the second element is the mean front position (in cm), the third element is the standard error of the mean (in cm).

mean_front_positions_SE_small_cL.m

#### Mean front position and standard error, large autocorrelation treatment

This is a Mathematica list. It contains five elements, each of which corresponds to the mean front positions measured at a different threshold density, respectively: 45, 60, 75, 90 and 105 1/cm. The mean is computed across the replicates belonging to the large autocorrelation length treatment. Each element of the list contains a list of triplets: the first element of each pair is the mean time of measurement (in days), the second element is the mean front position (in cm), the third element is the standard error of the mean (in cm).

mean_front_positions_SE_large_cL.m

#### Front positions, small autocorrelation treatment

This is a Mathematica list. It contains five elements, each of which corresponds to the front positions measured at a different threshold density, respectively: 45, 60, 75, 90 and 105 1/cm. Each element of this list contains five elements, each corresponding to a different experimental replicate invasion in the small autocorrelation length treatment. Each element of this sub-list contains pairs of data, where the first element is the measurement time (in days) and the second element is the position of the front at that time (in cm).

front_positions_small_cL.m

#### Front positions, large autocorrelation treatment

This is a Mathematica list. It contains five elements, each of which corresponds to the front positions measured at a different threshold density, respectively: 45, 60, 75, 90 and 105 1/cm. Each element of this list contains six elements, each corresponding to a different experimental replicate invasion in the large autocorrelation length treatment. Each element of this sub-list contains pairs of data, where the first element is the measurement time (in days) and the second element is the position of the front at that time (in cm).

front_positions_large_cL.m